微信小程序 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 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
javascript下查找父节点的简单方法
Aug 13 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
Feb 03 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
Mar 15 Javascript
封装好的js判断操作系统与浏览器代码分享
Jan 09 Javascript
简单学习JavaScript中的for语句循环结构
Nov 10 Javascript
js运动应用实例解析
Dec 28 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
动态设置form表单的action属性的值的简单方法
May 25 Javascript
jQuery基本选择器之标签名选择器
Sep 03 Javascript
vue2中的keep-alive使用总结及注意事项
Dec 21 Javascript
JavaScript ES6常用基础知识总结
Feb 09 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 Pear 安装及使用
2009/03/19 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
Python网络编程详解
2017/10/31 Python
详解Python 函数如何重载?
2019/04/23 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
酒店管理自荐信
2013/10/23 职场文书
应届毕业生就业自荐信
2013/10/26 职场文书
办公室主任岗位职责
2013/11/08 职场文书
质量工程师岗位职责
2013/11/16 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
促销活动总结模板
2014/07/01 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
nginx静态资源的服务器配置方法
2022/07/07 Servers