HTML5音频API声音不会正确暂停

时间:2013-11-05 08:01:25

标签: javascript jquery html5 html5-audio

你好我想弄清楚为什么某些元素没有正确暂停。我一直试图想出这个简单的错误。我在音频标签上有一个点击事件,当我播放音频时,我想暂停它,它完美地工作,Buttt ..当我再次按下音频标签时,它从音频文件的开头开始,它应该在我暂停的地方停下来。我的代码片段在下面...我的猜测是我的src属性每次点击暂停时都会向服务器重新发送一个全新的请求,而且它不应该......(因此数据是mp3的一个对象,我正在循环)所以,如果有人能帮助我解决这个快速问题,那就太棒了! ...

HTML:

<div>
    <audio id="audio"></audio>
    <div id="btnPlay">Play</div>
    <div id="btnPause">Pause</div>
<div>

JS:

document.getElementById("btnPlay").onclick = function (e) {
    var player = document.getElementById("audio");
    player.src = "admin/" + "admin_data/" + "member_sounds/" + obj["sounds_name"];
    player.play();
};

document.getElementById("btnPause").onclick = function (e) {
    var player = document.getElementById("audio");
    player.pause();
};  

1 个答案:

答案 0 :(得分:0)

如果发生这种情况,因为当您点击播放按钮时,您正在设置源,这将在某些浏览器中调用新的加载操作并重置开始位置(您可以播放的唯一原因是文件从缓存加载为加载是异步的。)

尝试在播放按钮外设置src:

var player = document.getElementById("audio");
player.preload = 'auto';

/// you should really add a canplay event handler here...

player.src = "admin/" + "admin_data/" + "member_sounds/" + obj["sounds_name"];

document.getElementById("btnPlay").onclick = function (e) {
    player.play();
};