微信小程序 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 相关文章推荐
JS面向对象编程 for Cookie
Sep 19 Javascript
关于图片的预加载过程中隐藏未知的
Dec 19 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
Feb 14 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
Apr 11 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
React diff算法的实现示例
Apr 20 Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 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
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
帝国cms目录结构分享
2015/07/06 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
CI框架常用函数封装实例
2016/11/21 PHP
python进程与线程小结实例分析
2018/11/11 PHP
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
机电工程专业应届生求职信
2013/10/03 职场文书
女大学生自我鉴定
2013/12/09 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
绿里奇迹观后感
2015/06/15 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
Vue如何实现组件间通信
2021/05/15 Vue.js
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python