[英]Javascript: How to pause/stop currently playing audio?
我有以下代码在我的网站上播放音频。 问题是播放音频不会停止或暂停以播放新的音频。 所有文件都像疯了似的一起播放。
$().ready(function () {
PlayMp3('sounds/file1.mp3');
PlayMp3('sounds/file2.mp3');
PlayMp3('sounds/file3.mp3');
PlayMp3('sounds/file4.mp3');
});
function PlayMp3(file) {
var isiPad = navigator.userAgent.match(/iPad/i) != null;
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
var isiPod = navigator.userAgent.match(/iPod/i) != null;
pauseAllAudio();
if (navigator.userAgent.indexOf("Firefox") != -1) {
file = file.replace("mp3", "ogg");
$('#content').append('<audio src="' + file + '" controls preload="auto" autobuffer autoplay="autoplay" style="display:none"></audio>');
}
else if (isiPad || isiPhone || isiPod) {
var snd = new Audio(file);
snd.load();
snd.play();
}
else {
$('#content').append('<embed height="0" width="0" src="' + file + '">');
}
}
function pauseAllAudio() {
$('video, audio').each(function () {
$(this)[0].pause();
});
var allAudioEls = $('audio');
allAudioEls.each(function () {
var a = $(this).get(0);
a.pause();
});
$('audio').remove();
if (snd != undefined) {
snd.pause();
}
}
这不是重复的问题。 我在这里尝试过类似问题的所有解决方案,但没有一种解决方案适合我。 谢谢。
小变化。
$('video, audio').each(function () {
$(this).get(0).stop();
});
说,如果它正在工作。
检查以下各项是否有效:
$(this)[0].pause();
$(this).get(0).pause();
感谢Praveen Kumar。 没有他,我找不到消除“嵌入”的问题。 添加$('embed').remove();
function pauseAllAudio()
。 它解决了除Firefox以外的所有浏览器的问题。 该firefox不喜欢mp3或<embed>
标签。 我不得不做更多的研究,以使其仅适用于该浏览器。
jPlayer看起来很棒,它可以解决我的问题。 解决方法如下。
function PlayMp3(file) {
$('embed').remove();
if (navigator.userAgent.indexOf("Firefox") != -1) {
file = file.replace("mp3", "ogg");
$('#jquery_jplayer').jPlayer("pauseOthers");
$('#jquery_jplayer').jPlayer("setMedia", { oga: file });
$('#jquery_jplayer').jPlayer("play");
}
else {
$('#content').append('<embed height="0" width="0" src="' + file + '">');
}
我不得不放弃HTML 5 <audio>
标签。 :(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.