停止HTML5音频

3
我该如何编写一个函数以停止DOM中正在播放的所有html5音频实例?
HTML5音频
<audio class="AudioPlayerV1" preload="none" width="292">
    <source src="test.mp3" type="audio/mpeg" />
</audio>

js

AudioPlayerV1('*').each(function() {
    this.setStop();
});
3个回答

9
$.each($('audio'), function () {
    this.pause();
});

这段代码在DOM中找到所有<audio>元素,并使用标准API暂停每个元素的播放。

关于<audio><video>标签,这里有一些优秀的阅读材料:https://developer.mozilla.org/en/Using_HTML5_audio_and_video

更新

AudioPlayerV1脚本的文档说明了如何暂停一个<audio>元素:

$('#audio_id').AudioPlayerV1('pause');

来源:http://1.s3.envato.com/files/14653378/index.html#how-to-use

看起来 AudioPlayerV1 插件应该在一些 DOM 元素中被调用,并传入一个选项。

更新

要运行插件以暂停多个 <audio> 元素,您应该能够执行以下操作:

$('audio').AudioPlayerV1('pause');

这段代码选取DOM中的<audio>元素并将它们传递给AudioPlayerV1插件。如果插件已经编写好处理这些元素,那么你无需额外操作。但如果没有,你需要在每个元素上调用该插件。最简单的方法是使用循环:

$.each($('audio'), function () {
    $(this).AudioPlayerV1('pause');
});

有没有一种方法可以停止它们所有,而不是通过ID逐个定位? - Blainer
对于所有的HTML5音频,这个代码可以起作用://停止所有正在播放的音频 $.each($('audio'), function () { this.pause(); }); - ImaginedDesign

1

首先,您需要为音频元素设置一个ID。

在您的JS中:

var ply = document.getElementById('player');

var oldSrc = ply.src;//仅记住旧源

ply.src = "";//要停止播放器,您必须将源替换为无


1
非常不好的习惯。你如何重新使用你的播放器?考虑使用.pause()然后.currentTime = 0; - Ronan

0

这个对我有效。 .stop() 抛出了一个错误。

$.each($('audio'), function () {
    this.pause();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接