无法在Safari中加载HTML5音频文件

无法在Safari中加载HTML5音频文件,html,audio,safari,Html,Audio,Safari,[编辑:使用不带Javascript等的简化测试页面] 我有一个包含四个音频文件的网页。这些文件作为HTML5和.mp3文件一起使用,应该在Safari中播放。(我对Firefox和Chrome中的.ogg文件没有任何问题。) 每次我重新加载页面时,都会有一到三个文件正确加载,其余文件无法加载——尽管它们没有给出错误,“加载”消息消失;就好像他们正在加载0B大小的文件。哪些文件可以工作,哪些文件看起来不是完全随机的:我看到每个文件都加载了,并且每个文件都失败了不止一次 如何才能正确加载所有这些文

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

我有一个包含四个音频文件的网页。这些文件作为HTML5
和.mp3文件一起使用,应该在Safari中播放。(我对Firefox和Chrome中的.ogg文件没有任何问题。)

每次我重新加载页面时,都会有一到三个文件正确加载,其余文件无法加载——尽管它们没有给出错误,“加载”消息消失;就好像他们正在加载0B大小的文件。哪些文件可以工作,哪些文件看起来不是完全随机的:我看到每个文件都加载了,并且每个文件都失败了不止一次


如何才能正确加载所有这些文件?

查看页面的生成源,首先加载ogg文件,然后按此顺序加载mp3文件

但是,正如文件中指定的那样,它们的顺序是相反的,所以请尝试执行相同的操作


否则,请尝试在您的源代码中提供m4a/mp4容器中的aac音频

我遇到了一个类似的问题,没有加载文件,因此提出了此解决方案。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();
    });

谢谢你的回复。我颠倒了文件类型的顺序,这没有什么区别。我会尝试使用m4a文件,但我真的不清楚为什么我必须这样做,因为Safari理论上支持mp3文件,其中一些工作正常;我完全被它弄糊涂了。你能解决这个问题吗?我面临着完全相同的问题。即使我在暂停事件时重新加载音频,它也会一次又一次不停地暂停。它的花费永远不会超过几秒钟。了解Safari似乎需要媒体请求的文件扩展名可能会有所帮助。正确的mime类型(在音频元素和响应中)不足以加载资源。在此上下文中,
$(this)[0]
相当于
this