微信小程序 vidao实现视频播放和弹幕的功能


Posted in Javascript onNovember 02, 2016

 微信小程序 vidao视频播放及弹幕的功能的实现。

vidao

我现在看到的官方文档是不带danmu(弹幕)属性的,之前是有的,不过现在这个属性还可以生效。控制视频的状态可以根据video标签的唯一id得到一个对象实例。video组件并不具备action属性,不能通过action来控制。

.wxml

<view class="section tc">
 <video src="{{src}}"  controls ></video>
 <view class="btn-area">
  <button bindtap="bindButtonTap">获取视频</button>
 </view>
</view>

<!-- 
 danmu-list:弹幕列表
 enable-danmu:是否显示弹幕
 danmu-btn:弹幕按钮
 controls:是否显示视频控件,并没有什么用
 -->
<view class="section tc">
 <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" binderror="videoErrorCallback" danmu-list="{{danmuList}}" enable-danmu danmu-btn controls></video>
 <view class="btn-area">
  <button bindtap="bindButtonTap">获取视频</button>
  <input bindblur="bindInputBlur"/>
  <button bindtap="bindSendDanmu">发送弹幕</button>
 </view>
</view>

<!-- 现在的video就下面三个属性 -->
<video src="" binderror="" hidden></video>

.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: '',
  danmuList: [
   {
    text: '第 1s 出现的弹幕',
    color: '#ff0000',
    time: 1
   },
   {
    text: '第 3s 出现的弹幕',
    color: '#ff00ff',
    time: 3
   }
  ]
  },
 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()
  })
 },
  videoErrorCallback: function(e) {
   console.log('视频错误信息:');
   console.log(e.detail.errMsg);
  }
})

效果

 微信小程序 vidao实现视频播放和弹幕的功能

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript asp.net 获取当前超链接中的文本
Apr 14 Javascript
基于jquery的时间段实现代码
Aug 02 Javascript
简单的Jquery遮罩层代码实例
Nov 14 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
JS简单实现城市二级联动选择插件的方法
Aug 19 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 Javascript
Node.js assert断言原理与用法分析
Jan 04 Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 04 Javascript
bootstrap基础知识学习笔记
Nov 02 #Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
Nov 02 #Javascript
Bootstrap table的使用方法
Nov 02 #Javascript
AngularJS指令用法详解
Nov 02 #Javascript
AngularJS表单和输入验证实例
Nov 02 #Javascript
AngularJS入门教程之数据绑定原理详解
Nov 02 #Javascript
深入理解Node.js 事件循环和回调函数
Nov 02 #Javascript
You might like
PHP下escape解码函数的实现方法
2010/08/08 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
jquery tools之tooltip
2009/07/25 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
vue设置动态请求地址的例子
2019/11/01 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python利用IPython提高开发效率
2016/08/10 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
迟到检讨书大全
2014/01/25 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
现金出纳岗位职责
2014/03/15 职场文书
培训讲师岗位职责
2014/04/13 职场文书
摄影展策划方案
2014/06/02 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
教师工作决心书
2015/02/04 职场文书
考研英语辞职信
2015/05/13 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL