当我点击另一个时,如何阻止一个音频播放器播放 - javascript

时间:2013-05-03 15:18:18

标签: javascript html5 audio

我正专门为ipad创建一个页面。

我的页面上有12个音频播放器。它们都工作正常,但如果你点击第二个玩家,第一个玩家继续玩。我之前看过这个问题,但没有一个答案是我的代码所特有的。

<script>

function EvalSound(soundobj) {
 var thissound=document.getElementById(soundobj);
  if (thissound.paused)
            thissound.play();
    else
        thissound.pause();
        thissound.currentTime = 0;
}
</script>

球员们自己:

<a href="card3_ipad.php?card=funny" onClick="EvalSound('song1'); return true;"
    target="player"><IMG SRC="images/funnytab.gif" BORDER=0 WIDTH=128 HEIGHT=29>
</A>    
<audio id="song1" style="display: none; width: 0px; height: 0px;"
src="mp3examples/funnyauto.mp3" controls preload="auto" autobuffer>
然后另一个玩家是:

<a href="card3_ipad.php?card=country" onClick="EvalSound('song2'); return true;"
    target="player"><IMG SRC="images/countrytab.gif" BORDER=0 WIDTH=128 HEIGHT=29>
</A>    
<audio id="song2" style="display: none; width: 0px; height: 0px;"
src="mp3examples/countryauto.mp3" controls preload="auto" autobuffer>

任何帮助都会受到大力赞赏!

干杯

汤姆

1 个答案:

答案 0 :(得分:1)

使用另一个保存当前活动播放器的变量

<script>
var currentPlayer;
function EvalSound(soundobj) {

 var thissound=document.getElementById(soundobj);
 if(currentPlayer  && currentPlayer != thissound) {
      currentPlayer.pause(); 
 }
 if (thissound.paused)
            thissound.play();
    else
        thissound.pause();
        thissound.currentTime = 0;
         currentPlayer = thissound;
}
</script>