微信小程序开发—(十六)video视频播放

一.知识点

1.video

video标签认宽度300px、高度225px,设置宽高需要通过wxss设置width和height。

2.wx.createVideoContext(videoId):创建并返回 video 上下文 videoContext 对象

videoContext:videoContext 通过 videoId 跟一个 video 组件绑定,通过它可以操作一个 video 组件。


二.操作

1.视频播放:发送弹幕

wxml

<view class="section">
  <video id="myVideo" src="{{src}}" danmu-list="{{danmuList}}" enable-danmu danmu-btn controls></video>
  <view class="btn-area">
  	<button type="primary" bindtap="videoPlay">播放</button>
	<button type="primary" bindtap="videoPause">暂停</button>
    <input bindblur="bindInputBlur" placeholder="请输入弹幕内容"/>
    <button bindtap="bindButtonTap">获取视频</button>
    <button bindtap="bindSendDanmu">发送弹幕</button>
  </view>
</view>

js

var util = require('../../utils/util.js')
function getRandomColor () {//随机获取颜色
  let rgb = []
  for (let i = 0 ; i < 3; ++i){
    let color = Math.floor(Math.random() * 256).toString(16)
    color = color.length == 1 ? '0' + color : color
    rgb.push(color)
  }
  return '#' + rgb.join('')
}

Page({
  	onReady: function (res) {
    	this.videoContext = wx.createVideoContext('myVideo');//获取上下文
  	},
  	inputValue: '',
    data: {
	src: 'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?
	filekey=30280201010421301f0201690402534804102ca905ce620b1241b72
	6bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c0
	20101042530230204136ffd93020457e3c4ff02024ef202031e8d7f020
	30f42400204045a320a0201000400',
   		danmuList: [
	      {
	        text: '第 1s 出现的弹幕',
	        color: '#ff0000',
	        time: 1
	      },
	      {
	        text: '第 3s 出现的弹幕',
	        color: '#ff00ff',
	        time: 3
	    }]
    },
    //播放
    videoPlay:function(){
    	this.videoContext.play();
    },
    //暂停
    videoPause:function(){
    	this.videoContext.pause();
    },
    //写弹幕
  	bindInputBlur: function(e) {
    	this.inputValue = e.detail.value
  	},//获取视频
  	bindButtonTap: function() {
	    var that = this
	    wx.chooseVideo({
	      	sourceType: ['album', 'camera'],
	      	maxDuration: 60,
	      	camera: ['front','back'],
	      	success: function(res) {
	        	that.setData({
	          		src: res.tempFilePath
	        	})
	      	}
	    })
  	},
  	//发送弹幕
  	bindSendDanmu: function () {
    	this.videoContext.sendDanmu({
      		text: this.inputValue,
      		color: getRandomColor()
    	})
  	}
})




2.监听视频加载错误状态


<!--监听button点击事件-->
<button bindtap="listenerButton">点击显示视频组件</button>

<!--视频组件src资源地址,binderror为监听错误信息-->
<video 
    src="http://mvvideo1.meitudata.com/575c2b652d7375255.mp4"
    style="width: 100%; height: 100%"
    hidden="{{hiddenVideo}}"
    binderror="listenerVideo" />


Page({
  data:{
    // text:"这是一个页面"
    hiddenVideo: true
  },
  /**
   * 监听视频加载错误状态
   */
  listenerVideo:function(e) {
      console.log(e.detail.errMsg);
  },
  /**
   * 监听button点击事件
   */
  listenerButton:function() {
      this.setData({
          hiddenVideo: !this.data.hiddenVideo
      })
  }

})




  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值