微信小程序video自定义control

本文介绍了如何在微信小程序中自定义video组件的控制功能,包括隐藏原生controls,重写播放、暂停、全屏等操作,并提供相关代码示例。在横竖屏切换时要注意进度条布局调整,以及在cover-view中的限制。推荐参考官方API和相关博客文章深入学习。
摘要由CSDN通过智能技术生成

1.背景:

有些时候需要用到video自定需求,可以参考如下案例

2.思路

2.1 把原生的controls(底部的控制,进度条,暂停播放)隐藏掉,然后自己重写controls:
2.2 把原生的show-fullscreen-btn(全屏,退出全屏)隐藏掉,并重写;
2.3 定义bindplay(播放),bindpause(暂停),bindended(播放完毕),bindtimeupdate(更新播放时间,在拖动进度条时需要用到),一一通过代码实现即可

3.代码:

3.1wxml

<view class="main rowAndColCenter">
	<view class="mainC">
		<video class="video" id="myVideo" src="http://vjs.zencdn.net/v/oceans.mp4" object-fit="cover" show-fullscreen-btn="{
  {false}}" enable-play-gesture="{
  {true}}" play-btn-position="center" bindtimeupdate="videoUpdate" controls="{
  {false}}" bindplay="videoPlay" bindpause="videoPause" bindended="videoEnded">
			<view class='slider-container'>
				<view class="videoBtnBox">
					<image src="../../image/play.png" class="pauseBtn" wx:if="{
  {videoBtn}}" catchtap="pauseVideo"></image>
					<image src="../../image/playon.png" class="
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
自定义微信小程序video的进度条,可以使用wx.createVideoContext()方法获取video组件实例,然后通过该实例的属性和方法来实现自定义进度条的效果。 以下是一个简单的示例代码: wxml文件部分: ```xml <video src="{{src}}" id="myVideo"></video> <view class="progress-bar" style="width: {{progress}}%;"></view> ``` js文件部分: ```javascript Page({ data: { src: '视频地址', duration: 0, // 视频总长 currentTime: 0, // 当前播放间 progress: 0 // 进度条进度 }, onLoad: function () { // 获取video组件实例 this.videoContext = wx.createVideoContext('myVideo', this); // 监听视频播放间变化事件 this.videoContext.onTimeUpdate(this.handleTimeUpdate); // 获取视频总长 this.videoContext.duration((duration) => { this.setData({ duration: duration }); }); }, handleTimeUpdate: function (e) { // 更新当前播放间和进度条进度 this.setData({ currentTime: e.detail.currentTime, progress: e.detail.currentTime / this.data.duration * 100 }); } }); ``` css文件部分: ```css .progress-bar { height: 6px; background-color: #ccc; } ``` 在上述代码中,我们首先通过wx.createVideoContext()方法获取video组件实例,然后在onLoad()生命周期函数中监听视频播放间变化事件,并获取视频总长。在handleTimeUpdate()函数中,我们更新当前播放间和进度条进度,最后在wxml文件中使用style属性来设置进度条的宽度。 需要注意的是,为了让Video组件支持进度条拖动功能,还需要在wxml文件中添加bindtouchstart、bindtouchmove和bindtouchend事件,并在js文件中添加相应的处理函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值