Html5 audio / jQuery:播放延迟问题(预加载)

时间:2010-09-08 22:25:26

标签: jquery html5

我正在使用html5音频并遇到缓冲区的一些麻烦。这在Chrome中非常出色,但在Safari(和SafMob)中有明显的延迟。这个想法很简单。用户单击img链接并且img“跳转”并发出声音。 Here is an example

有没有办法预加载声音文件,以便更快地播放?同样,我主要关心的是Safari / Safari Mobile浏览器。

我正在使用的jQuery:

$("#bell a").click(function() {
  var snd = new Audio("ping.mp3");
  snd.play();
  $(this).stop().animate({ marginTop: "-10px" }, 200).animate({ marginTop: "18px" }, 200).animate({ marginTop: "1px" }, 300); 
return false;
});

这是按钮的代码:

<ul id="bell">
  <li class="button"><a href="#" title="Pling">Link Text</a></li>
</ul>

2 个答案:

答案 0 :(得分:1)

每次单击时都要避免在全局变量上创建新的Audio元素,因此您可以重用现有实例。

然后将snd.play();替换为snd.cloneNode(true).play();

对我而言,它产生了巨大的变化。

答案 1 :(得分:0)

preload实际上是一个值,auto,meta或automatic之一。虽然我认为默认行为是下载整个文件。

还有更多内容:Playing with audio files或来自规范本身:preload attribute

不确定这是否有帮助。