我正在尝试使用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();
}
这些连接到事件处理程序,因此当有人点击“暂停”按钮时,播放停止。但是,当他们按下“恢复”按钮时,播放将恢复仅约半秒钟,然后再次停止。
如何让音频恢复正常?
答案 0 :(得分:1)
Chrome中似乎存在计时问题。您需要告诉Chrome播放,然后再次暂停,然后再次播放,每次播放之间会有短暂的延迟。
unpause
方法的工作版本是:
unpause() {
var fn = () {
audioElement.currentTime = this.time;
audioElement.play();
};
fn();
window.setTimeout(() => audioElement.pause(), 25);
window.setTimeout(fn, 50);
}
答案 1 :(得分:0)
我在Chrome上遇到了类似的问题。当我“恢复”音频元素时播放之前它结结巴巴,我在Safari中没有遇到同样的问题。然而,事实证明,Chrome对我的mp3格式不满意。将ogg版本的文件添加到我标记中的源代码可以解决问题。