Javascript:如何暂停/停止当前播放的音频?
Posted
技术标签:
【中文标题】Javascript:如何暂停/停止当前播放的音频?【英文标题】:Javascript: How to pause/stop currently playing audio? 【发布时间】:2012-10-13 02:41:44 【问题描述】:我有以下代码可以在我的网站上播放音频。问题是播放音频不会停止或暂停播放新的。所有文件都疯狂地一起播放。
$().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 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();
这不是一个重复的问题。我在这里尝试了类似问题的所有解决方案,但没有一个解决方案适合我。谢谢。
【问题讨论】:
【参考方案1】:小改动。
$('video, audio').each(function ()
$(this).get(0).stop();
);
说它是否有效。
更新 #1
检查以下是否有效:
$(this)[0].pause();
$(this).get(0).pause();
【讨论】:
它不起作用。我什至现在脚本错误为“PM Error: TypeError: $(this).get(0).stop is not a function Source File:” @JonasT 更新了答案。检查两个条件! :) 我已经尝试了您更新的两个答案。他们现在都没有给出脚本错误,但它也没有暂停。 :( 我已经在我正在开发的网站上更新了我的问题。你可以很快地尝试测验,你会看到声音一起播放得非常糟糕。 好的。会检查并通知您。 好人。我将 【参考方案2】:感谢 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 src="' + file + '">');
我不得不放弃 html 5 <audio>
标签。 :(
【讨论】:
以上是关于Javascript:如何暂停/停止当前播放的音频?的主要内容,如果未能解决你的问题,请参考以下文章
创建一个只有播放和暂停的 Javascript 音频播放列表
多个音频,当当前正在使用 javascript 播放时自动停止其他
在IOS核心音频中,如何找到文件播放器音频单元的真实当前播放头位置?