ios - HTML5 音频标签无法在 ios chrome 和 safari 中播放音频文件

标签 ios html google-app-engine html5-audio

我正在努力获得简单的音频播放。我有一个轨道列表,每个轨道都有唯一的网址,当用户按下相关的播放按钮时,我想播放这些轨道。我已经尝试过 soundmanager2 和 jplayer,但无法让它适用于我的用例(桌面浏览器和 ios)。我已经退回到直接使用 html5,代码如下

<audio controls>
      <source src="/path/to/file" type="audio/wav">
    Your browser does not support the audio element.
</audio>

这在桌面 chrome 和桌面 safari 中完美运行。在 ios chrome 和 ios safari(最新)中,播放器没有显示,而是显示了一条灰色框内的消息,提示“无法播放音频文件”。

我是否正确使用了这个标签?我该如何克服这些错误?

更新1

我正在从 google appengine 发送 wav 文件(作为 blob)。我发现 safari 无法播放,除非我将 .wav 添加到 src 的末尾 - 尽管 src 只是文件的间接链接。返回的实际文件确实以 .wav 结尾,但 Safari 不够智能,无法识别这一点。

更新2

以下适用于所有浏览器(如上所述)- 因此它不特定于 wav 文件。

<audio controls preload="metadata">
      <source src="http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/AFsp/M1F1-Alaw-AFsp.wav" type="audio/wav">
    Your browser does not support the audio element.
</audio>

我已经从 google app engine 将文件作为 MIME 附件和原始响应发送,但这没有区别。

更新3

我换了一个更长的 wav 文件 ( http://www.villagegeek.com/downloads/webwavs/ever_again.wav ),这也无法播放(在 ios 上)。目前尚不清楚是因为长度、大小还是其他一些变量。

更新4

我已经排除了大小问题,因为这个 24 秒的 wav 文件有效

<audio controls preload="auto">
      <source src="http://www.dailywav.com/sites/default/files/wavs/dontlikelaughing.wav" type="audio/wav">
    Your browser does not support the audio element.
</audio>

更新5

所以我从谷歌云存储桶提供文件。保存文件时,我没有指定 MIME 类型,因此它以二进制/八位字节流的形式返回。桌面浏览器足够聪明,可以克服这个问题,但移动浏览器却不行。

最佳答案

所以我从谷歌云存储桶提供文件。保存文件时,我没有指定 MIME 类型,因此它以二进制/八位字节流的形式返回。桌面浏览器足够聪明,可以克服这个问题,但移动浏览器却不行。因此,上述问题的答案是在写入 GCS 时为相关文件设置 MIME 类型。

关于ios - HTML5 音频标签无法在 ios chrome 和 safari 中播放音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458713/

相关文章:

javascript - 尝试修复元素的高度,以便在悬停时正确突出显示

google-app-engine - GAE TextProperty 中的 "="符号

java - 如何在谷歌应用程序引擎中动态添加任务到队列中?

ios - iAd 白色横幅不会消失

ios - 无法将顶部约束添加到 View

ios - addTarget 和 addGestureRecognizer 不工作,没有崩溃/错误

python - 在 Windows 7 上安装 Google Cloud SDK 时出错

ios - 如何使用自动布局在 UIPageViewController 中定位 subview ?

html - 如何正确居中对齐拆分为 2 :1 ratio 的两个相邻框的内容

javascript - 使用 jQuery 设置 li 的值