【问题标题】:Audio element not working properly with Safari音频元素无法与 Safari 一起正常工作
【发布时间】:2012-01-31 03:56:14
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 如果您的文件在同一目录中,请尝试从src 中删除audio/。此页面在 Safari 中是否适合您? w3schools.com/html5/tryit.asp?filename=tryhtml5_audio_all
  • 它们在一个单独的目录中。看来是服务器问题。我尝试从本地主机服务器提供页面,它工作正常。我们的远程服务器似乎不想将音频文件提供给 Safari 网络浏览器(所有其他浏览器都可以正常工作)。

标签: html audio safari html5-audio


【解决方案1】:

是的,无效的 HTTPS 证书或 HTTP Auth 在 safari 上不起作用(在低端 linux 设备上的定制 safari 浏览器上测试)。 为了使其正常工作,请使用有效的 https 证书。

【讨论】:

    【解决方案2】:

    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://problem/11481585,这对我们任何人都没有帮助。)

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 太棒了。我使用了 HTTP Auth,我花了 2 个小时才找到您的建议。谢谢。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        • 2012-09-30
        • 1970-01-01
        • 2018-04-12
        • 2020-04-27
        • 2021-05-22
        • 2021-11-29
        相关资源
        最近更新 更多