在 safari iPhone 4.3 上通过 HTTPS 播放 HTML5 音频

Posted

技术标签:

【中文标题】在 safari iPhone 4.3 上通过 HTTPS 播放 HTML5 音频【英文标题】:HTML5 audio playback over HTTPS on safari IPhone 4.3 【发布时间】:2012-02-20 17:26:16 【问题描述】:

我编写了一个简单的 html 代码来使用 iPhone 上的 HTML5 音频标签播放音频文件。

<audio controls="controls" autoplay="autoplay">
<source src="http://192.168.1.130/ab.wav>" type="audio/wav" preload="auto"/>
Your browser does not support the audio element.
</audio>

上面的代码在 safari 上运行得非常好。当我将源 URL 从 HTTP 更改为 HTTPS 时,问题就出现了。

我开始收到“无法播放此电影”错误消息。

我使用的证书链如下:

VeriSign 试用安全服务器根 CA - G2 -> VeriSign 试用安全服务器 CA - G2 -> ucbu-aricent-vm200

默认情况下,根 CA(上)的证书在 Safari 中不可用。

所以我已将证书颁发机构(根证书和中间证书)的证书附加到电子邮件中,然后通过单击电子邮件中的附件将它们添加到 iPhone 中。

但当 Safari 创建 TCP 会话以传输 WAV 文件时,我仍然看到 SSL 握手失败。

注意:当创建 TCP 会话以从服务器获取 HTML 文件时,SSL 握手会成功。我对比了 HTML 和 WAV 文件场景的 SSL 握手的网络数据包,两者是相同的。

【问题讨论】:

您有没有考虑过,用于音频/视频播放的 HTTP/SSL 可能不是由 Safari 完成的(只是假设) 为什么不使用您知道操作系统接受的证书?他们在 GoDaddy 上的售价为 12 美元...... 经过一番努力,我能够在 Iphone 上通过 HTTPS 解决音频播放问题。此外,我已经在 iPad 上对其进行了测试,并且也可以使用它。似乎需要以下事情才能使其工作。 1) 由 Iphone 上受信任的证书颁发机构签署的 Tomcat Web 服务器证书。我们已经使用 StartCom CA 授权来生成证书。 2) 在音频标签中,我们必须使用主机名而不是 IP 地址。似乎 Safari 正在将证书 CN 与 URL 进行比较以确认盒子的身份。 您能否确认这在 Windows Phone 8 中是否也能正常工作?我一直在努力让它工作,但最后我必须设计自己的音频/视频播放器来通过 HTTPS 源播放媒体文件。 【参考方案1】:

ceejoyez 和 OP 都提到了这一点(谢谢你们!),但我几乎错过了它,因为它不是真正的答案

如果您通过 https 提供内容,您需要有一个有效的证书,否则它将无法在 ios 设备(或 Mac 上的 Safari)上播放。

有关相关问题,请参阅here。

【讨论】:

还有这个问题。尽管在证书和 Audio src 中有有效的证书和正确的域。 iOS 9.3. marcel,您的证书是自签名的还是来自某些受信任的来源?我问是因为自签名证书可以是有效的,但我相信它仍然会触发这个问题。

以上是关于在 safari iPhone 4.3 上通过 HTTPS 播放 HTML5 音频的主要内容,如果未能解决你的问题,请参考以下文章

iOS (4.3) safari 问题与音频(多个文件)

[ 视频 ] iPhone上 Safari 长按的小技巧你知道多少

Kinvey 无法在 iPhone 和 iPad 上运行

UIWebView pich 可以在 iPhone 5.0 模拟器上进行缩放,但不能在 iPhone 4.3 和 iPad 4.3、5.0 模拟器上工作?

Safari 不会通过 http/2 加载一些资源

通过 safari 浏览器访问 iPhone 设备硬件?