小程序之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