小程序video自定义播放按钮

小程序video组队的默认样式是无法修改的,实现方式是隐藏组件的播放按钮,再自己实现播放暂停的交互。

在这里插入图片描述

wxml结构

隐藏掉 中间按钮show-center-play-btn 和 底部按钮show-play-btn

<video
    class="video"
    id="video_player"
    src="http://www.ydyyjkgj.com/video-ziyuan/Voicechat/16687/18190/14998/19842/8A71DFDEC9279E321BAE110D71653CEE102428.mp4"
    show-center-play-btn="{{false}}"
    show-play-btn="{{false}}"
    enable-play-gesture
    bindplay="triggerPlay"
    bindpause="triggerPause"
  	bindended="triggerEnd"
    bindcontrolstoggle="controlsToggle"
    bindtouchmove="touchMove"
    bindtouchend="touchEnd">
    <view class="control-icon" hidden="{{!controlShow}}">
      <image hidden="{{isPlay}}" src="./icon-play.png" bindtap="handlePlay"></image>
      <image hidden="{{!isPlay}}" src="./icon-pause.png" bindtap="handlePause"></image>
    </view>
  </video>

js内容

这里注意wx.createVideoContext,我这里video是直接写在页面
如果是写在组件里,wx.createVideoContext第二个参数要传this
例如:this.videoContext = wx.createVideoContext('video_player', this)

Page({
  data: {
    isPlay: false,
    controlShow: false
  },
  onLoad() {
    this.videoContext = wx.createVideoContext('video_player')
  },
  // 播放
  handlePlay() {
    this.videoContext.play()
  },
  // 暂停
  handlePause() {
    this.videoContext.pause()
  },
  // 触发播放、暂停
  triggerPlay() {
    this.setData({
      isPlay: true
    })
  },
  triggerPause() {
    this.setData({
      isPlay: false
    })
  },
  // 播放结束,安卓没有触发暂停,未能修改播放按钮,在这里手动修改
  triggerEnd() {
    this.setData({
      isPlay: false
    })
  },
  // 控制按钮和 controls 显隐同步
  controlsToggle(e) {
    const { show } = e.detail
    this.setData({
      controlShow: show
    })
  },
  // 屏幕滑动进度时,隐藏按钮,避免遮挡
  // 这里拖拽进度条,无法触发滑动事件,有解决方案的小伙伴欢迎在下方评论哦
  touchMove() {
    this.setData({
      controlShow: false
    })
  },
  touchEnd() {
    this.setData({
      controlShow: true
    })
  }
})

代码片段:https://developers.weixin.qq.com/s/zwJgpImN78vR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZionHH

落魄前端,在线炒粉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值