uni-app中隐藏进度条后,进入全屏和退出全屏的方法

本文介绍了一种自定义video组件的方法,通过隐藏原生进度条并使用JS控制全屏和退出全屏功能。利用cover-view覆盖video组件,实现自定义进度条及全屏按钮。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中需要这样一个功能,需要隐藏video原生的进度条,并且还能进入全屏,进入全屏后还能退出全屏。由于原生的video组件在隐藏进度条后就没有进入全屏和退出全屏按钮,此时我们必须要用js去控制进入和退出全屏。

html:

<video id="myVideo"  class="myVideo" :custom-cache="false"
					:src="xxx" :autoplay="false" :controls="false" :page-gesture='true'
					:show-progress="true" :show-play-btn="false" :show-center-play-btn="false"
					:enable-progress-gesture="false" @loadedmetadata="loadedmetadata" @timeupdate="timeupdate"
					@ended="ended" @error="videoErrorCallback" @fullscreenchange="playerFullScreen"
					@click="hideAndShow">
					<cover-view class="cover-container" v-if="onShow&&myVideo">
						<template>
							<cover-view class="currentTim" v-if="onShow&&myVideo">
								{{currentProgress?currentProgress:'00:00'}}
							</cover-view>
							<cover-view class="progress-container">
								<cover-view class="progress" v-if="onShow&&myVideo" :style="{width:progressWidth}">
									<cover-view class="circle" v-if="onShow&&myVideo"></cover-view>
								</cover-view>
								<cover-view class="total-progress" v-if="onShow&&myVideo"></cover-view>
							</cover-view>
							<cover-view class="totalTim" v-if="onShow&&myVideo">{{totalProgress?totalProgress:'00:00'}}
							</cover-view>
						</template>
						<cover-view class="screen" v-if="openScreen&&myVideo" @click="quitFullScreen">退出全屏</cover-view>
						<cover-view class="screen" v-if="!openScreen&&myVideo" @click="getIntoScreen">全屏</cover-view>
					</cover-view>
				</video>

js:

methods:{
        getIntoScreen() {
				this.myVideo = uni.createVideoContext('myVideo')
				// 进入全屏状态
				this.myVideo.requestFullScreen();
				this.openScreen = true;
			},
        quitFullScreen() {
				this.myVideo = uni.createVideoContext('myVideo')
				// 退出全屏状态
				this.myVideo.exitFullScreen();
				this.openScreen = false;
			}
}

注意:cover-view可以覆盖video组件,可以在视频上写一些样式

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值