2014-07-09 117 views
1

我正忙於一個音樂商店web應用程序,後端使用JAVA,前端使用Angular JS/HTML5/CSS3。 ammm,對於音樂播放我使用Sound Manager Java Script Library,所有的東西都可以和靜態360播放器一起使用,但是當我嘗試在ng-repeat指令中使用聲音管理器時,這不起作用,請提供任何建議?並且是健全的管理者,通過角度js「ng-repeat」創建的live 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部分尚不包含任何元素。因此,聲音管理器決定不添加事件處理程序來檢查是否單擊該按鈕。

我編輯了mp3-player-button.js,並在init部分中註釋了它在哪裏說「if(foundItems> 0)」,以便它總是添加聲音管理器事件處理程序。

這個解決方案有點不好 - 所以也許你可以實現更聰明的東西。但它適用於我。希望能幫助到你!

+0

這不是soundmanager的錯!它用於靜態播放!你可以使用其他玩家!我知道soundmanager 360播放器是如此的甜蜜!無論如何,我是一個聲音經理,使其動態:) – bizzr3