微信小程序 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 相关文章推荐
使用Modello编写JavaScript类
Dec 22 Javascript
JS处理VBArray的函数使用说明
May 11 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
javascript 的Document属性和方法集合
Jan 25 Javascript
浅析JavaScript中的类型和对象
Nov 29 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
Jan 21 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
vue params、query传参使用详解
Sep 12 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 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学习教程之第1天
2008/06/15 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
JS实现复制功能
2017/03/01 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
vue引入静态js文件的方法
2020/06/20 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
Python切换pip安装源的方法详解
2016/11/18 Python
Python编程给numpy矩阵添加一列方法示例
2017/12/04 Python
基于Django用户认证系统详解
2018/02/21 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
详解【python】str与json类型转换
2019/04/29 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
Hibernate持久层技术
2013/12/16 面试题
医学生职业规划范文
2014/01/05 职场文书
车贷收入证明范本
2014/01/09 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis