2016-03-04 34 views
1

我無法讓IE 8使用媒體元素一致播放音頻文件。 IE 8將播放第一個音頻文件,但不播放下一個。它可以在所有其他瀏覽器中正常工作。加載IE 8的附加音頻

function playAudio(audioId) { 

     var player = new MediaElementPlayer('#' + audioId + '', { 
      autoplay: true, 
      pauseOtherPlayers: true, 
      success: function (mediaElement, domObject) { 

       mediaElement.addEventListener('ended', function (e) { 
        //stuff 
       }, false); 
      } 
     } 
     ); 
     player.load();//is this necessary? 
     player.play(); 

    } 
    <p onclick="playAudio('Audio01')">Play 1</p> 
    <p onclick="playAudio('Audio02')">Play 2</p> 
    <p onclick="playAudio('Audio03')">Play 3</p> 

    <div style="display:hidden;"> 
    <audio id="Audio01"> 
     <source src="a01.mp3" type="audio/mpeg" /> 
    </audio> 

    <audio id="Audio02"> 
     <source src="a02.mp3" type="audio/mpeg" /> 
    </audio> 

    <audio id="Audio03"> 
     <source src="a03.mp3" type="audio/mpeg" /> 
    </audio> 
    </div> 

IE 8不一致地播放其他音頻片段。沒有錯誤拋出。還有什麼我需要做的,讓IE瀏覽器像其他所有工作一樣?

回答

0

因此,它似乎IE 8不支持

trigger('pause') 

而且,它與player.play()麻煩

這是我結束了,如果它可以幫助別人:

function playAudio(audioId) { 

     new MediaElement(audioId, { 

      pauseOtherPlayers: true, 
      success: function (mediaElement, domObject) { 

       // call the play method 
       mediaElement.play(); 

      } 
     }); 
    } 

然後我管理一個本地變量來切換它是否正在播放,以便IE 8不會重疊音頻文件。