微信小程序视频弹幕位置随机

本文实例为大家分享了微信小程序视频弹幕位置随机的具体代码,供大家参考,具体内容如下

最近更新开发工具之后,微信小程序视频播放弹幕不再自动随机,所以就用了一个比较取巧的方法(多条空弹幕和自己要发送的弹幕一起发送,利用随机数控制顺序就行了);

wxml代码

<!--pages/study/video/videoplay/videoplay.wxml-->
<view class=\"page-body\">
  <view class=\"page-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 
      show-center-play-btn=\'{{false}}\' 
      show-play-btn=\"{{true}}\" 
      controls
      picture-in-picture-mode=\"{{[\'push\', \'pop\']}}\"
      bindenterpictureinpicture=\'bindVideoEnterPictureInPicture\'
      bindleavepictureinpicture=\'bindVideoLeavePictureInPicture\'
    ></video>
    <view style=\"margin: 30rpx auto\" class=\"weui-label\">弹幕内容</view>
    <input bindblur=\"bindInputBlur\" class=\"weui-input\" type=\"text\" placeholder=\"在此处输入弹幕内容\" />
    <button style=\"margin: 30rpx auto\"  bindtap=\"bindSendDanmu\" class=\"page-body-button\" type=\"primary\" formType=\"submit\">发送弹幕</button>
    <navigator style=\"margin: 30rpx auto\"  url=\"picture-in-picture\" hover-class=\"other-navigator-hover\">
      <button type=\"primary\" class=\"page-body-button\" bindtap=\"bindPlayVideo\">小窗模式</button>
    </navigator>
  </view>
</view>

js代码

// pages/study/video/videoplay/videoplay.js
var that;
function getRandomColor() {
  const 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({
  onShareAppMessage() {
    return {
      title: \'video\',
      path: \'page/component/pages/video/video\'
    }
  },
 
  onReady() {
    that = this;
    this.videoContext = wx.createVideoContext(\'myVideo\')
  },
 
  onHide() {
 
  },
 
  inputValue: \'\',
  data: {
    src: \'\',
    danmuList:
    [{
      text: \'第 1s 出现的弹幕\',
      color: \'#ff0000\',
      time: 1
    }, {
      text: \'第 3s 出现的弹幕\',
      color: \'#ff00ff\',
      time: 3
    }],
  },
 
  bindInputBlur(e) {
    this.inputValue = e.detail.value
  },
 
  bindButtonTap() {
    const that = this
    wx.chooseVideo({
      sourceType: [\'album\', \'camera\'],
      maxDuration: 60,
      camera: [\'front\', \'back\'],
      success(res) {
        that.setData({
          src: res.tempFilePath
        })
      }
    })
  },
 
  bindVideoEnterPictureInPicture() {
    console.log(\'进入小窗模式\')
  },
 
  bindVideoLeavePictureInPicture() {
    console.log(\'退出小窗模式\')
  },
 
  bindPlayVideo() {
    this.videoContext.play()
  },
  bindSendDanmu() {
    // 利用循环和随机数调整位置
    var ranNum = Math.floor(Math.random()*10);
    var danmuList = [];
    for (let index = 0; index < 10; index++) {
      danmuList.push(\'\');
    }
    danmuList[ranNum] = this.inputValue;
    for (let index = 0; index < danmuList.length; index++) {
      this.videoContext.sendDanmu({
        text: danmuList[index],
        color: \'#ff0000\'
      });
    }
  },
 
  videoErrorCallback(e) {
    console.log(\'视频错误信息:\')
    console.log(e.detail.errMsg)
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容