2014-07-09 4 views
1

백엔드 용 JAVA 및 프런트 엔드 용 Angular JS/HTML5/CSS3을 사용하는 음악 상점 웹 응용 프로그램에서 바쁩니다. ammm 및 음악 재생에 대해서는 Sound Manager Java Script Library을 사용했지만 모든 것은 정적 360 플레이어에서 잘 작동하지만 ng-repeat 지시문에서 사운드 관리자를 사용하려고하면 작동하지 않습니다. 사운드 매니저는 앵글 js "ng-repeat"에 의해 생성 된 라이브 DOM 요소와 함께 작동합니까?Soundmanager 2는 각도 js "ng-repeat"지시문과 함께 작동하지 않습니다.

사운드 관리자 초기화

   // init Sound Manager 

      soundManager.setup({ 
       // path to directory containing SM2 SWF 
       url: 'player/' 
      }); 

      threeSixtyPlayer.config.scaleFont = (navigator.userAgent.match(/msie/i)?false:true); 
      threeSixtyPlayer.config.showHMSTime = true; 

      // enable some spectrum stuffs 

      threeSixtyPlayer.config.useWaveformData = true; 
      threeSixtyPlayer.config.useEQData = true; 

      // enable this in SM2 as well, as needed 

      if (threeSixtyPlayer.config.useWaveformData) { 
       soundManager.flash9Options.useWaveformData = true; 
      } 
      if (threeSixtyPlayer.config.useEQData) { 
       soundManager.flash9Options.useEQData = true; 
      } 
      if (threeSixtyPlayer.config.usePeakData) { 
       soundManager.flash9Options.usePeakData = true; 
      } 

      if (threeSixtyPlayer.config.useWaveformData || threeSixtyPlayer.flash9Options.useEQData || threeSixtyPlayer.flash9Options.usePeakData) { 
       // even if HTML5 supports MP3, prefer flash so the visualization features can be used. 
       soundManager.preferFlash = true; 
      } 

각도 NG 반복

<div class="mod-contents"> 
    <div class="questions-block" ng-repeat="question in filtered = (questionList | filter:searchKey | orderBy : predicate : reverse)"> 
     <div class="col-xs-12 col-sm-4 col-md-3 pull-right"> 
      <div class="thumbnail block-black "> 
       <h3 class="block-title rtl-element">{{ question.description }}<span class="text-muted"> ({{ question.cat_code }}) </span></h3>  
       <div class="ui360 ui360-vis player-wrapper-md player-md "><a href="pac_test.mp3"></a></div>     
      </div> 
     </div>   
    </div> 
</div> 
+1

SoundManager는 기존 DOM 요소를 처리 할 책임이 있습니다. SoundManager가 실행 된 후 새 DOM 요소를 추가하는 경우 사용자가 책임집니다. – idbehold

답변

-1

저도 같은 문제가되었다. 나는 왜 그것이 일어나고 있는지 알 것 같습니다. 나는 사운드 매니저를위한 javascript를 믿는다. 사운드 매니저의 인스턴스를 찾고 아무 것도 찾지 못한다. ng-repeat 섹션은 정적이 아닙니다. 그것은 바뀔 수 있습니다. 따라서 페이지를로드하고 사운드 관리자가로드되면 ng-repeat 섹션에 아직 요소가 없습니다. 따라서 사운드 관리자는 버튼을 클릭했는지 확인하기 위해 이벤트 처리기를 추가하지 않기로 결정합니다.

나는 init 섹션에서 "if (foundItems> 0)"라고 말한 부분을 주석 처리하여 항상 사운드 관리자 이벤트 처리기를 추가했습니다.

이 솔루션은 약간 해킹 된 제품이므로 더 똑똑한 제품을 구현할 수 있습니다. 그러나 그것은 나를 위해 일합니다. 희망은 도움이됩니다!

+0

이것은 soundmanager의 잘못이 아닙니다! 정적 재생을 위해 제작되었습니다! 다른 플레이어를 사용할 수 있습니다! 나는 soundmanager 360 선수가 너무 달랐다는 것을 압니다! 어쨌든, 나는 그것을 동적으로 만들기 위해 사운드 매니저를하고있다. :) – bizzr3