【问题标题】:HTML5 Audio files fail to load in SafariHTML5 音频文件无法在 Safari 中加载
【发布时间】:2010-11-17 04:43:45
【问题描述】:

[编辑:使用没有 Javascript 等的简化测试页面]

我有一个包含四个音频文件的网页。这些文件以 HTML5 <audio> 和 .mp3 文件的形式提供,应该在 Safari 中播放。 (我对 Firefox 和 Chrome 中的 .ogg 文件没有任何问题。)

每次我重新加载页面时,都会有 1 到 3 个文件正确加载,其余的则无法加载——尽管它们没有给出错误,并且“加载”消息消失了;就好像它们加载的大小为 0B。哪些文件有效,哪些似乎不是完全随机的:我已经看到每个文件都加载并且每个文件都失败了不止一次。

我怎样才能使所有这些文件正确加载?

【问题讨论】:

  • 我遇到了同样的问题;我完全被它弄糊涂了。
  • 你能解决这个问题吗?我面临着完全相同的问题。即使我在停止事件中重新加载音频,它也会一次又一次地不停地停止。它永远不会支付超过几秒钟的时间。
  • 了解 Safari 似乎需要文件扩展名来处理媒体请求可能会有所帮助。正确的 mime 类型(在音频元素和响应中)不足以加载资源。

标签: html audio safari


【解决方案1】:

我遇到了类似的文件无法加载的问题,并提出了这个解决方案。似乎 HTML5 音频/视频可以“停止”,这意味着它只是停止加载。幸运的是,发生这种情况时会触发一个“失速”事件。我所做的是监听此事件以及何时/如果它触发,只需尝试强制重新加载音频。

使用 jQuery 的示例:

    // the event is 'onstalled' - 'stalled' in the jquery case
   $("audio").bind("stalled", function() { 
        var audio = this;
        audio.load();

        // Threw in these two lines for good measure.
        audio.play();
        audio.pause();
    });

【讨论】:

  • 在此上下文中,$(this)[0] 等价于 this
【解决方案2】:

查看生成的页面源代码,您首先加载的是 ogg 文件,然后是 mp3 文件,按此确切顺序加载

但是,http://html5doctor.com/native-audio-in-the-browser/ 文件中指定的顺序是相反的,所以请尝试这样做

否则尝试在您的源中同时提供 m4a/mp4 容器中的 aac 音频

【讨论】:

  • 感谢您的回复。我颠倒了文件类型的顺序,并没有什么区别。我会尝试使用 m4a 文件,但我真的不清楚为什么必须这样做,因为 Safari 理论上支持 mp3 文件,其中一些可以正常工作。
猜你喜欢
  • 2014-10-19
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多