在我的网站上,我有使用video.js库的vue-video-player。在三星银河s9的移动Chrome上,它可以正确自动播放,但在iPhone 7的移动safari中无法自动播放。
HTML是:
<video-player class="video-player-box"
id="player"
ref="videoPlayer"
:options="playerOptions"
@ended="onPlayerEnded($event)">
</video-player>
并在我的脚本标签中:
data() {
return {
playerOptions: {
muted: true,
autoplay: true,
controls: false,
sources: [{
type: "video/mp4",
src: "https://res.cloudinary.com/dlqvkenro/video/upload/v1544320787/gvnn.mp4"
}],
poster: "/static/images/author.jpg",
}
}
},
实际上,当我单击声音图标视频时,就可以在野生动物园中开始播放,但是我希望它在用户进入页面时自动开始播放。
我添加了代码以编程方式启动播放器:
mounted() {
this.player.play()
.then(() => {
console.log('play succseed');
})
.catch(() => {
alert('safari prevent player');
});
},
,并且实际上出现在野生动物园警报中。我有什么办法可以赢得苹果的胜利?
答案 0 :(得分:1)
答案 1 :(得分:0)
我在vue组件中仅使用<video>
标签也遇到了类似的问题。我能够将其自动播放,但必须重新加载html才能正常工作。也许您可以在下面使用某些东西...
<template>
<div class="video-wrapper">
<video class="video" playsinline muted autoplay loop>
<source src="loopedVideo.mp4" type='video/mp4'>
</video>
</div>
</template>
<script>
export default {
name: 'Video',
mounted() {
// Start looped video.
let isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
let video = document.querySelector('.video');
if (isSafari && video) {
setTimeout(function() {
// werid fix for safari
document.querySelector('.video-wrapper').innerHTML = video.outerHTML;
}, 100);
}
}
}
</script>