change(event) {
				this.k = event.detail.current
				setTimeout(()=>{
					this.playVideo();
				},1000)

			},

最近一直在开发h5端 和公众号小程序,一般总会遇到video不能自动触发播放(由于不同浏览器限制)、

微信浏览器:

<swiper :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px; background-color: #000000;'"
			:vertical="true" @animationfinish="animationfinish" @change="change" :current="current"
			:indicator-dots="false" :circular="true">
			<swiper-item v-for="(list,index) in dataList" :key="index">
				<view v-if="k==index">
	
					<video v-if="isShow" :id="list._id+'_'+index" ref="videoPlayer" :muted="true" 
						enable-play-gesture :controls="true" :show-center-play-btn="true" play-btn-position="center"
						:http-cache="true" :show-play-btn="true" :show-fullscreen-btn="false" :show-loading="true"
						enable-progress-gesture :src="list.video_src" @ended="ended" @play="play(dataList[k].tv_id)"
						poster-size="fill" object-fit="fill"
						:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px; background-color: #000000;'"
						:poster="dataList[k].tv_image">
					</video>

					<view v-if="!isShow" @click="click_tvimg()">
						<image :src="dataList[k].tv_image" mode="aspectFit"
							:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px; background-color: #000000;'">
						</image>
					</view>

				</view>
			</swiper-item>
		</swiper>

写一个方法:

playVideo() {

				// 在这里调用播放视频的逻辑,可能需要获取视频元素并调用 play() 方法
				const videoElement = this.$refs.videoPlayer; // 获取视频元素的引用
				if (videoElement) {
					videoElement[0].play()
				}
			}, 

2.在onload和change方法中执行:调用

change(event) {
				this.k = event.detail.current
				setTimeout(()=>{
					this.playVideo();
				},1000)

			},
	setTimeout(()=>{
				this.playVideo();
			},1000) 

 不加延时器时器没有效果得,这样在微信公众号在微信浏览器中会实现自动播放

h5端 ,微信小程序 实现自动播放是可以采用获取视频上下文实现得,

    uni.createVideoContext(this.dataList[this.k]._id + '' + this.k, this).play(),

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐