微信小程序中播放视频 例子

1、wxml中

<!-- ====== 课时视频播放区 start ====== -->
<text class="video_title">{{currentVideo.video_title}}</text>
<view class="playArea">
  <video enable-play-gesture="{{true}}" bindended="videoEnded" object-fit="cover" custom-cache="{{false}}" id="myVideo" src="{{currentVideo.videoUrl}}" >
    <!-- 视频封面 start-->
    <cover-view class="video_cover" wx:if="{{play_flag!=0}}">
      <cover-view class="play_mask" catchtap="bindPlay">
        <cover-image class="play_btn" src="{{offlineImgUrl}}playbtn.png"></cover-image>
      </cover-view>
      <cover-image class="video_cover_img" src="{{offlineImgUrl + currentVideo.courseCover}}" mode="heightFix"></cover-image>
    </cover-view>
    <!-- 视频封面 end-->
  </video>
</view>
<!-- ====== 课时视频播放区 end ====== -->

<!-- ====== 课时视频tab切换 start ====== -->
<scroll-view class="video_tab" scroll-x>
  <view class="video_tab_item {{currentItem==item.id?'active':''}}" wx:for="{{courseVideoData}}" wx:key="id" catchtap="checkVideo" data-video-info="{{item}}">
    <view class="video__small_mask"></view>
    <image src="{{offlineImgUrl + item.courseCover}}" mode="heightFix"></image>
  </view>
</scroll-view>
<!-- ====== 课时视频tab切换 end ====== -->

2、js中
首先在onReady中获取视频容器 this.videoContext = wx.createVideoContext(“myVideo”);
如果在组件中 this.videoContext = wx.createVideoContext(‘myVideo’,this);这样获取

data: {
  courseVideoData: [], //我的视频列表数据
  play_flag: -1,//默认显示视频封面  -1显示  0不显示
  currentVideo: {},//播放区视频  默认第一个
  currentItem:'' //底部默认选中的视频添加样式
},
/*
 *@Description: 获取数据列表
 *@MethodAuthor: LiJuncai
 *@Date: 2022-06-08 22:25:07
*/
getList() {
  this.setData({
    courseVideoData: testData,//课程视频列表数据赋值
    currentVideo: testData[0],//播放去区视频  默认第一个
    currentItem: testData[0].id//底部选中视频  默认第一个
  })
},
/**
 * 生命周期函数--监听页面初次渲染完成
 */
onReady() {
  this.videoContext = wx.createVideoContext("myVideo");
},
/*
  *@Description: 点击选择播放课程
  *@MethodAuthor: LiJuncai
  *@Date: 2022-06-08 22:24:39
 */
checkVideo: function (e) {
 let videoInfo = e.currentTarget.dataset["videoInfo"];//获取点击视频信息
 var id = e.currentTarget.dataset.id;
 console.log(e);
 this.setData({
   currentVideo: videoInfo,//将点击视频信息赋值给播放区
   play_flag: -1,//显示视频封面
   currentItem: videoInfo.id //设置当前视频样式
 });
 this.videoContext.pause();//暂停视频
},
/*
 *@Description: 点击播放视频
 *@MethodAuthor: LiJuncai
 *@Date: 2022-06-08 22:24:25
*/
bindPlay() {
  this.setData({
    play_flag: 0
  });
  this.videoContext.play();
},
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值