我正试图在iPad上的Safari中自动播放音频文件.如果我在Mac上使用Safari进入页面,那很好.在iPad上,自动播放不起作用.
我有这个代码在html5页面播放视频:
<video autoplay loop id="bgvid">
<source src="video-background.mp4" poster="/poster.png" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)
问题是它不适用于移动Chrome(Android手机)和手机游戏(iPhone).但它适用于桌面上的"每个"浏览器(使用Safari,Chrome,Firefox测试)以及移动版Firefox(Android手机).
我该如何克服这个问题?
编辑: 添加此代码:
var myVideo = document.getElementById("bgvid");
function playVid() {
myVideo.play();
}
function pauseVid() {
myVideo.pause();
}
Run Code Online (Sandbox Code Playgroud)
如果我添加一个触发函数playVid()的按钮就可以了.所以我认为问题在于自动播放.我试图用load事件触发函数,但它不起作用.
我编写了一个简单的 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>
Run Code Online (Sandbox Code Playgroud)
上面的代码在 safari 上工作得很好。当我将源 URL 从 HTTP 更改为 HTTPS 时,问题就出现了。
我开始收到“无法播放这部电影”的错误消息。
我正在使用如下的证书链:
VeriSign 试用安全服务器根 CA - G2 -> VeriSign 试用安全服务器 CA - G2 -> ucbu-aricent-vm200
默认情况下,Safari 中不提供根 CA(上图)的证书。
因此,我已将证书颁发机构(Root 和 Intermediate)的证书附加到电子邮件中,然后通过单击电子邮件中的附件将它们添加到 iPhone 中。
但是我仍然看到当 Safari 创建 TCP 会话来传输 WAV 文件时 SSL 握手失败。
注意:当创建 TCP 会话以从服务器获取 HTML 文件时,SSL 握手成功。我比较了HTML和WAV文件场景的SSL握手的网络数据包,它们都是相同的。