Safari 阻止 video.js 播放器自动播放
Safari prevent auto play of video.js player
在我的网站上,我有使用 video.js 库的 vue-video-player。在 samsung galaxy 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",
}
}
},
实际上在 Safari 上,当我点击声音图标时视频开始播放,但我希望它在用户进入页面时自动开始。
我添加了代码以编程方式启动播放器:
mounted() {
this.player.play()
.then(() => {
console.log('play succseed');
})
.catch(() => {
alert('safari prevent player');
});
},
实际上在 Safari 中出现警报。有什么办法可以战胜苹果吗?
看看这里 https://blog.videojs.com/autoplay-best-practices-with-video-js/
希望对您有所帮助。
我在 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>
在我的网站上,我有使用 video.js 库的 vue-video-player。在 samsung galaxy 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",
}
}
},
实际上在 Safari 上,当我点击声音图标时视频开始播放,但我希望它在用户进入页面时自动开始。
我添加了代码以编程方式启动播放器:
mounted() {
this.player.play()
.then(() => {
console.log('play succseed');
})
.catch(() => {
alert('safari prevent player');
});
},
实际上在 Safari 中出现警报。有什么办法可以战胜苹果吗?
看看这里 https://blog.videojs.com/autoplay-best-practices-with-video-js/
希望对您有所帮助。
我在 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>