微信小程序 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教程
Jun 09 Javascript
通过判断JavaScript的版本实现执行不同的代码
May 11 Javascript
JavaScript之IE的fireEvent方法详细解析
Nov 20 Javascript
jQuery filter函数使用方法
May 19 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
Jul 02 Javascript
常用的JavaScript模板引擎介绍
Feb 28 Javascript
浅谈JavaScript字符串拼接
Jun 25 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
jQuery实现发送验证码并60秒倒计时功能
Nov 25 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
详解webpack2异步加载套路
Sep 14 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
Snoopy类使用小例子
2008/04/15 PHP
php利用事务处理转账问题
2015/04/22 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
js常见表单应用技巧
2008/01/09 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
python执行外部程序的常用方法小结
2015/03/21 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Python 移动光标位置的方法
2019/01/20 Python
python解析xml简单示例
2019/06/21 Python
python画双y轴图像的示例代码
2019/07/07 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
python与idea的集成的实现
2020/11/20 Python
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
小学敬老月活动方案
2014/02/11 职场文书
婚礼主持结束词
2014/03/13 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
房贷收入证明范本
2015/06/12 职场文书
小学大队长竞选稿
2015/11/20 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL