小程序之video组件

作者: 清风徐云去 | 来源:发表于2017-12-01 15:18 被阅读773次

小程序的组件还是挺好用的,直接封装成一个标签,然后按照API说明,设置标签的属性值对组件进行控制及其它操作,video组件也一样。
官网对于video的介绍页很简单,一个默认宽度300px、高度225px的视频组件,然后就是里面包含的属性(太多了,就不截完了,想细看的可以点击这里:https://mp.weixin.qq.com/debug/wxadoc/dev/component/video.html

image.png

接着就是一个小demo
wxml:

<view class="section tc">
  <video src="{{src}}"   controls ></video>
  <view class="btn-area">
    <button bindtap="bindButtonTap">获取视频</button>
  </view>
</view>

<view class="section tc">
  <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" 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>

wxjs:

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()
    })
  }
})

末尾还来一张效果图


image.png

看着是不是很简单啊,感觉一点难度都没有。是的,等你上手的时候就知道了。

按照惯例,一开始就运行一下这个demo,发现根本行不通,点击没有任何效果


image.png

接着在网上找了很多视频地址都不行(都是.html后缀),接着进到群里问问群里的大佬,给的意见是腾讯网的视频放不了,优酷的视频可以,而且找的视频要.mp4的后缀才行。额···好吧,这点API里没说(或者我没找到),埋头继续找,依然不行。突然想到能不能把视频放到自己的服务器上,然后调用播放。说干就干。
下载了优酷土豆(没打广告,下载它因为可以直接在下载的同时转码为mp4)并安装,好了之后就可以去优酷土豆视频网搜视频,点击打开,下载步骤如下图


1 2 3 4

接着上传服务器,将video的src替换成自己的


image.png

接着运行小程序,成功!


image.png

最后补充一下video的注意事项:
1.video 组件是由客户端创建的原生组件,它的层级是最高的。

  1. 请勿在 scroll-view 中使用 video 组件。
  2. css 动画对 video 组件无效。

如果想在video组件上添加组件,可以使用cover-view组件,具体使用方法点击这里:https://mp.weixin.qq.com/debug/wxadoc/dev/component/cover-view.html

相关文章

网友评论

    本文标题:小程序之video组件

    本文链接:https://www.haomeiwen.com/subject/bqcwbxtx.html