我有一个视频可以在台式机上自动播放,但可以在移动设备上播放,不是因为
DOMException:play()失败,因为用户没有首先与文档进行交互。
我想在用户滑动屏幕时开始播放视频。
所以我这样尝试了:
mounted() {
document.addEventListener('touchmove', this.handleSwipe, false);
}
methods: {
handleSwipe() {
const video = document.querySelector('#main-video');
if (video.currentTime === 0 || video.paused) {
video.play()
}
}
}
这仍然给我同样的错误。
如果我将touchmove
更改为touchstart
,并且将video.play()
更改为video.load();
,则此方法有效
通过这种方式,视频可以开始点击播放。但是有办法在滑动上播放吗?
更新 如果我这样做
mounted() {
document.addEventListener('touchstart', this.handleSwipe, false);
}
methods: {
handleSwipe() {
const video = document.querySelector('#main-video');
if (video.currentTime === 0 || video.paused) {
video.play()
}
}
}
然后它将在第二次点击时起作用。就像第一次点击不会注册为与文档的交互。