1

您好,我想弄清楚为什么某些元素没有正确暂停。一段时间以来,我一直试图弄清楚这个简单的错误。我在音频标签上有一个点击事件,当我播放音频时,我想暂停它,效果很好,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();
};  
4

1 回答 1

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();
};
于 2013-11-05T08:21:30.183 回答