使用微信小程序的video组件

简单示例
<!--index.wxml-->
<video src="https://ugcbsy.qq.com/uwMROfz2r5xiIaQXGdGlQmdfJ7yHzHEsPXDor1Y5RH80k33k/v1413ivib4x.p712.1.mp4?sdtfrom=v1010&guid=9d9aa4fafb2dc32699076eb845f8fad8&vkey=7DFEE07A98C927034264801C10141717266BE5A521E3DC3491FA94C310A28A36B1FAAE798335CE977670C759D195891DD992E2C60D64187DFDB1B1EB85777269A484820ACF1D21DA30C27AA389AEF9797DCC664EB6F1710C9F5AA8933835A91C4E67A586DF1EEB80707677F507483311DA65632DDE519FFCB7408DBE188C9999618CBB4C5D932500#t=37" id="myVideo"></video>

在这里插入图片描述

弹幕示例
<!--index.wxml-->
<video src="{{src}}" id="myVideo" 
  enable-danmu danmu-btn danmu-list="{{danmuList}}"></video>
// index.js
Page({    
  data:{
    src:"http://localhost:8080/videos/告白气球.mp4",
    danmuList:[
      {text:"非常好听!",color:"#ff0000",time:1},
      {text:"杰伦出品,啦啦啦啦~~~~",color:"#ff00ff",time:3}
    ]
  }
})

我这边使用express搭建了一个本地的小型服务器,mp4视频就保存在这个服务器里。
在这里插入图片描述

  • src,视频资源。
  • enable-danmu,是否展示弹幕,布尔值,默认是false ,即默认不展示弹幕。
  • danmu-btn,是否显示弹幕按钮,布尔值,默认是false,即默认不显示弹幕按钮。
  • danmu-list,弹幕列表,是一个数组。
依然是弹幕示例
<!--index.wxml-->
<video src="{{src}}" id="myVideo" 
  enable-danmu danmu-btn danmu-list="{{danmuList}}" ></video>
<view class="danmu">
  <input type="text" bindblur="bindInputBlur"/>
  <button type="primary" bindtap="bindSendDanmu" size="mini">发送弹幕</button>
</view>
// index.js
Page({    
  data:{
    // src:"../../videos/告白气球.mp4",
    src:"http://localhost:8080/videos/告白气球.mp4",
    danmuList:[
      {text:"非常好听!",color:"#ff0000",time:1},
      {text:"杰伦出品,啦啦啦啦~~~~",color:"#ff00ff",time:3}
    ]
  },
  inputValue:"",
  videoContext:null,
  onReady:function(){
    this.videoContext = wx.createVideoContext('myVideo');
  },
  bindInputBlur:function(e){
    this.inputValue = e.detail.value;
  },
  bindSendDanmu:function(){
    this.videoContext.sendDanmu({
      text:this.inputValue,
      color:"#f90"
    })
  }
})
/**index.wxss**/
video{
  width: 100vw;
}

.danmu{
  margin: 10rpx 10rpx 0 10rpx;
  display: flex;
  align-items: center;
}
.danmu input{
  width:65vw;
  border: 1px solid #ccc;
  border-radius: 10rpx;
  margin-right: 6rpx;
  padding: 4rpx 8rpx;
  height: 60rpx;
  line-height: 60rpx;
}
.danmu button{
  flex:1
}

在这里插入图片描述

  • this.videoContext = wx.createVideoContext('myVideo')
    VideoContext实例,通过wx.createVideoContext获取。VideoContext通过id和video组件绑定,操作对应的video组件。
  • this.videoContext.sendDanmu(Object data)
    发送弹幕
播放本地视频
<!--index.wxml-->
<video src="{{src}}"></video>
<button type="primary" bindtap="bindButtonTap">选择视频</button>
/**index.wxss**/
video{
  width: 100vw;
}
// index.js
Page({
  data:{
    src:""
  },
  bindButtonTap:function(){
    console.log("enter bindButtonTap");
    wx.chooseVideo({
      sourceType:['album','camera'],
      camera:"back",
      success: res => {
        this.setData({
          src:res.tempFilePath
        })
      }
    })
  }
})

在这里插入图片描述
wx.chooseVideo,拍摄视频或从手机相册中选视频。

  • sourceType,选择视频来源,是一个数组。
    • album,从相册中选择视频
    • camera,使用相机拍摄视频
  • maxDuration,拍摄视频最长时间,单位是秒,默认值是60。
    遇到一个问题,如果设置的maxDuration值大于60,则视频选择功能失效,如下图所示,
    在这里插入图片描述
  • camera,拉起前置摄像头还是后置摄像头,默认是back,即默认拉起后置摄像头。
    • back,拉起后置摄像头
    • front,拉起前置摄像头
  • success,接口调用成功后的回调函数,参数res是一个对象,包含如下属性,
    • tempFilePath,选定视频的临时文件路径,也就是本地路径。
    • duration,选定视频的时间长度
    • size,选定视频的数据量大小
    • height,选定视频的高度
    • width,选定视频的宽度
使用腾讯视频插件来播放视频
添加插件

登录微信小程序后台,设置>第三方服务,点击添加插件,搜索“腾讯视频”,添加插件即可。
在这里插入图片描述

在app.json中引入插件

注意,插件版本号填最新的版本号,可以通过插件“详情”的基础信息获取。
在这里插入图片描述

  • app.json
{
  "plugins": {
    "tencentvideo":{
      "version":"1.4.5",
      "provider": "wxa75efa648b60994b"
    }
  }
}
使用插件

使用插件时,插件的代码对于使用者来说是不可见的。为了正确使用插件,使用者应该查看插件“详情”页面的“开发者文档”一节。
在这里插入图片描述

  • index.json
{
  "usingComponents": {
    "txv-video": "plugin://tencentvideo/video"
  }
}
  • index.wxml
<txv-video 
  vid="u00222le4ox"   
  playerid="txv1"     
  autoplay="{{true}}" 
></txv-video>

在这里插入图片描述

综合实例

当然,首先使用express搭建了一个小型服务器,用于存放视频文件,然后是下面这些代码。

<!--pages/video/video.wxml-->
<view class="video-list" wx:for="{{videoList}}" wx:key="title">
  <view class="video-title">标题:{{item.title}}</view>
  <view class="video-time">时间:{{item.time}}</view>
  <video src="{{item.src}}" object-fit="fill"></video>
</view>
// index.js
Page({
  data:{
    videoList:[
      {
        title:"告白气球",
        time:"2021-6-29 10:00",
        src:"http://localhost:8080/videos/告白气球.mp4"
      },
      {
        title:"敢不敢爱",
        time:"2021-6-29 11:00",
        src:"http://localhost:8080/videos/敢不敢爱.mp4"
      },
      {
        title:"她的眼睛会下雨",
        time:"2021-6-29 12:00",
        src:"http://localhost:8080/videos/她的眼睛会下雨.mp4"
      }    
    ]
  }
})
/**index.wxss**/

.video-list{
  box-shadow: 0 8rpx 17rpx 0 rgba(7,17,27,.1);
  margin: 10rpx 25rpx;
  padding: 20rpx;
  border-radius: 10rpx;
  margin-bottom: 30rpx;
}
.video-list video{
  width: 100%;
  margin-top: 20rpx;
}
.video-title{
  font-size: 35rpx;
  color: #333;
}
.video-time{
  font-size:13px;
  color: #979797;
}
{
  "pages":[
    "pages/index/index"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#a68962",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle":"white"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

看下效果。
在这里插入图片描述

  • 7
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信小程序video标签用于显示和播放视频资源。可以通过设置video标签的src属性来指定视频的资源地址。同时可以使用controls属性来显示播放控件,initial-time属性来指定视频的初始播放位置,autoplay属性来自动播放视频,muted属性来设置静音播放,object-fit属性来控制视频的大小和容器的适应方式。 然而,需要注意的是,在列表中直接使用video标签加载多个视频会导致页面卡顿。因此,建议在列表中使用封面图和播放小图标来显示视频元素,点击后再进行播放操作,以减少页面卡顿现象。 此外,对于腾讯视频的地址vkey是定时变化的,因此无法直接写死在程序中。需要通过后端抓取接口,过滤掉无用字符串,解析json,组合地址,然后将合适的视频地址通过接口返回给小程序video组件的src属性,以实现正常播放视频。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [微信小程序video标签默认显示视频的第一帧作为封面](https://blog.csdn.net/mouday/article/details/118517724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [微信小程序video组件调用腾讯视频的解析](https://blog.csdn.net/cj372835766/article/details/108417813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值