在Safari中多次播放HTML5音频的问题

Problems playing HTML5 audio multiple times in Safari

本文关键字:HTML5 音频 问题 播放 Safari      更新时间:2023-09-26

下面是我的代码:

Html:

<div id="audio-files" style="display: none;">
    <audio id="click-sound">
        <source src="/assets/click.mp3" type="audio/mpeg">
        <source src="/assets/click.wav" type="audio/wav">
    </audio>
</div>
JavaScript:

play: function() {
  var audio = $('#audio-files').find('audio#click-sound');
  if (audio.length) {
    audio[0].play();
  }
}

期望行为:
当我调用play()时,声音应该播放一次。应该只有一个请求服务器-在页面加载。多次调用play()不应该触发多个请求。

实际行为:


Firefox (19.0.2), Chrome(26.0.1410.43)和Opera(12.15)正常运行。
- Safari(6.0.3)只播放一次所需的声音,然后拒绝播放它或任何其他声音时,要求。

我尝试在audio[0].play()之前添加audio[0].load(),但这会导致浏览器每次被要求播放音频时都会发出请求,这是完全不希望的。

小提琴:http://jsfiddle.net/Tpvfm/

我认为你的示例mp3文件有问题。我刚把它(mp3)从你的小提琴上删除,它在我的Safari OSX上工作。

<div id="audio-files" style="display: none;">
  <audio id="click-sound">
    <source src="/assets/click.wav" type="audio/wav">
  </audio>
</div>

小提琴:73 gcx