音频元素无法正常使用Safari

问题描述:

我似乎无法让音频元素在Safari(v 5.1.2)中正常工作。我试着将文件移动到与页面相同的文件夹,使用mp3和mpeg MIME类型以及更改文件名。它似乎在所有其他浏览器中工作正常,但在Safari中音频元素已创建,但仅显示它正在加载并且不会播放。有任何想法吗?音频元素无法正常使用Safari

<audio controls preload="metadata"> 
    <source src="audio/song.mp3" type="audio/mpeg" /> 
    <source src="audio/song.ogg" type="audio/ogg" /> 
</audio> 

感谢

+0

如果你的文件在同一个目录下,试着从'src'中删除'audio /'。此页面在Safari中适合您吗? http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_audio_all – keyboardP 2011-12-31 18:24:57

+1

他们在一个单独的目录中。它似乎是一个服务器问题。我试图从本地主机服务器的页面,它工作正常。我们的远程服务器似乎不想将音频文件提供给Safari浏览器(所有其他浏览器都可以正常工作)。 – bgmaster 2011-12-31 22:24:03

尝试安装苹果快速的时间。我不知道桌面版本,但IOS版本使用quicktime播放来自safari的声音。

Safari似乎无法可靠地使用preload="metadata"加载声音。

您可以在控制台真的试试这个,任何网页:

var snd = document.createElement('audio'), src = document.createElement('source'); 
src.src = "http://www.largesound.com/ashborytour/sound/brobob.mp3"; 
src.type = "audio/mpeg"; 
snd.appendChild(src); 
snd.preload = 'metadata'; 
snd.play(); 

它不工作。然后:

snd.preload = null; // equivalent to 'auto' 

而且瞧!它开始播放。

(我已提起诉讼,这是rdar://问题/ 11481585,不是帮助我们任何人。)

您的网站是否使用了无效的HTTPS证书或HTTP认证?我遇到了这个问题,但发现Safari在我的无效HTTPS证书或基本身份验证(在临时服务器上)方面存在问题。

+0

这个评论实际上帮了我很多,非常感谢。 – 2013-06-05 18:13:33

+0

太好了。我使用HTTP身份验证,我花了2个小时,直到我找到你的建议。谢谢。 – 2014-06-11 09:55:43

是的,无效的HTTPS证书或HTTP认证不适用于Safari(在低端Linux设备上的自定义Safari浏览器上测试过)。 为了使其工作,请使用有效的https证书。