移动版Safari中HTML视频JavaScript播放方法不起作用

4

我在我的 Ember.js 应用程序中有一个视频元素,我正在使用 window.URL.createObjectURL(file) 设置它的 src 以生成上传前的预览。从视频文件输入捕获后,渲染的 HTML 如下:

<video class="video-review" controls="1" autoplay="1"
  src="blob:http://66efcd0.ngrok.com/bb427ce0-af04-4763-bb59-3be85b936895">
</video>
// * ngrok is just a port forwarding util for testing

视频显示正常,如果我手动点击它,它也能正常播放。
我需要视频在加载完成后立即播放。问题是自动播放不起作用,我无法通过javascript播放视频。在控制台(在视频加载后vid.load()),我尝试了以下内容:
vid = $('video.video-review').get(0)
vid.play()

这段代码不起作用。但是,当我手动点击视频并播放它(并使其聚焦),然后从控制台调用vid.play()时,就可以正常播放视频。因此,我尝试将视频聚焦:

vid.focus() and jquery $(vid).focus()
vid.play()

运气不好。

如何在移动Safari中使用JavaScript播放HTML视频?为什么自动播放不起作用?

此外,以下是分配视频属性的代码(由文件更改事件上的观察者触发):

var file = this.get('file');
window.URL = window.URL || window.webkitURL;
var vid = this.$('.video-review').get(0);
vid.src = window.URL.createObjectURL(file);   
vid.file = file;
vid.addEventListener('canplaythrough', function() {
  this.play();
}, false);
vid.load();
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接