微信小程序 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 常用代码技巧大收集
Feb 25 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
Sep 27 Javascript
AngularJS中过滤器的使用与自定义实例代码
Sep 17 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
JS控件bootstrap datepicker使用方法详解
Mar 25 Javascript
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 Javascript
原生js封装运动框架的示例讲解
Oct 01 Javascript
React.js绑定this的5种方法(小结)
Jun 05 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
Mar 16 Javascript
js实现小时钟效果
Mar 25 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 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
Python字符串中查找子串小技巧
2015/04/10 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Python聊天室程序(基础版)
2018/04/01 Python
Python logging设置和logger解析
2019/08/28 Python
python计算无向图节点度的实例代码
2019/11/22 Python
python创建n行m列数组示例
2019/12/02 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python pip配置国内源的方法
2020/02/14 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
小学生获奖感言范文
2014/02/02 职场文书
身边的榜样活动方案
2014/08/20 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
红色故事汇观后感
2015/06/18 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript