我正尝试在Dart和Chrome中使用html5音频,并且正在尝试尽可能简单地使用AudioElement的简单方法。我希望能够暂停声音并稍后再恢复。我有:
startSound() {
audioElement.src = "foo";
audioElement.load();
audioElement.play();
}
pause() {
this.time = audioElement.currentTime;
audioElement.pause();
}
unpause() {
audioElement.currentTime = this.time;
audioElement.play();
}
这些已连接到事件处理程序,因此当有人单击“暂停”按钮时,播放停止。但是,当他们按下“恢复”按钮时,播放仅恢复大约半秒钟,然后再次停止。
如何使音频正确恢复?
最佳答案
Chrome中似乎存在计时问题。您需要让Chrome播放,然后再次暂停,然后再次播放,每次播放之间都需要短暂的延迟。unpause
方法的有效版本是:
unpause() {
var fn = () {
audioElement.currentTime = this.time;
audioElement.play();
};
fn();
window.setTimeout(() => audioElement.pause(), 25);
window.setTimeout(fn, 50);
}
关于html - AudioElement一秒钟恢复播放停顿并停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11810166/