我在Mac OS 10.9.4下观察Safari 7.0.6中HTML5音频的奇怪行为。
我创建了一个像这样的音频元素
<audio id="audio" controls preload="none" src="http://www.noiseaddicts.com/samples/4353.mp3">
然后我尝试通过JavaScript播放它。
$(document).ready
(
function()
{
console.log('Document ready');
$('audio').bind
(
'stalled',
function()
{
console.log('Stalled');
this.load();
}
);
$('audio').bind
(
'canplaythrough',
function()
{
console.log('Can play through');
this.play();
console.log('Play');
}
);
console.log('Begin load');
// It will begin to load even if you comment the following line out
$('audio').trigger('load');
}
);
我在Safari中遇到这个脚本的几个问题。
由于未知原因,即使我没有调用load
方法,即使我指定preload="none"
属性,音频也会开始加载。在请求之前,如何强制Safari不加载音频?
加载开始时,音频会停止几次。为什么会失速?我该如何解决?这在任何其他浏览器中都不会发生。这会导致音频加载4-5次,导致播放前有大的延迟。
谢谢你的帮助!
P.S。这是一个jsbin来说明问题。