如果我们需要播放另一个音频,如何停止音频

Posted

技术标签:

【中文标题】如果我们需要播放另一个音频,如何停止音频【英文标题】:How to stop an audio if we need to play another audio 【发布时间】:2014-03-14 09:46:23 【问题描述】:

如果我们单击相应的链接,我已经编写了播放两个音频的代码。如果我们在播放第一个链接时单击第二个链接,如何编写 jquery 来停止第一个音频,反之亦然。

<p>Audio1</p>
    <audio id="playauido1">
        <source src="audio1.mp3" type="audio/mp3" />
    </audio>

<a href="#" onclick="document.getElementById('playauido1').play()"> Paly first audio </a>
<p>Audio2</p>               
    <audio id="playauido2">
        <source src="audio2.mp3" type="audio/mp3" />
    </audio>

<a href="#" onclick="document.getElementById('playauido2').play()"> Paly second audio </a>           

【问题讨论】:

【参考方案1】:

audioElement 有一个paused 属性。所以如果你想检查其他音频文件是否正在播放,你可以这样做

<script>
 function stopPlaying(audioElement) 
   if(!audioElement.paused)
     audioElement.pause();
   
 
</script>
<p>Audio1</p>
    <audio id="playauido1">
        <source src="audio1.mp3" type="audio/mp3" />
    </audio>

<a href="#" onclick="document.getElementById('playauido1').play();stopPlaying(document.getElementById('playauido2'));"> Paly first audio </a>
<p>Audio2</p>               
    <audio id="playauido2">
        <source src="audio2.mp3" type="audio/mp3" />
    </audio>

<a href="#" onclick="document.getElementById('playauido2').play();stopPlaying(document.getElementById('playauido1'));"> Paly second audio </a>    

如果你有更多的音频文件,你可以创建一个数组来存储音频元素,并在stopPlaying函数中进行for循环来检查和暂停音频文件。

但实际上,如果在您调用 .pause() 时音频已经暂停,它不会执行任何操作,因此您不必检查它是否正在播放。只需调用 pause()

<a href="#" onclick="document.getElementById('playauido1').play();playauido2.pause();">

这样更简单更容易

【讨论】:

以上是关于如果我们需要播放另一个音频,如何停止音频的主要内容,如果未能解决你的问题,请参考以下文章

如何停止从另一个 ViewModel 按钮播放音频

HTML5 - 当另一个音频标签开始播放时如何停止音频?

从该音频ViewController IOS7返回后如何停止音频

如何使用 Jquery 停止所有音频播放

多个 HTML5 音频播放器。单击另一个音频实例时停止播放其他音频实例

如果选择了一个播放器,如何停止所有音频播放器的播放?