1. 程式人生 > >微信小程序(9)--音頻及視頻播放

微信小程序(9)--音頻及視頻播放

ram text tran gui 數組 ide zid style stream

記錄微信小程序音頻及視頻播放。

1.audio

<!-- audio.wxml -->
<audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" id="myAudio" controls loop></audio>

<button type="primary" bindtap="audioPlay">播放</button>
<button type="primary" bindtap="audioPause">暫停</button>
<button type="
primary" bindtap="audio14">設置當前播放時間為14秒</button> <button type="primary" bindtap="audioStart">回到開頭</button>
// audio.js
Page({
  onReady: function (e) {
    // 使用 wx.createAudioContext 獲取 audio 上下文 context
    this.audioCtx = wx.createAudioContext(myAudio)
  },
  data: {
    poster: 
http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000, name: 此時此刻, author: 許巍, src: http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&fromtag=46
, },
//播放 audioPlay: function () {
this.audioCtx.play() },
//暫停 audioPause: function () {
this.audioCtx.pause() },
//設置當前播放時間在14秒 audio14: function () {
this.audioCtx.seek(14) },
//回到開頭 audioStart: function () {
this.audioCtx.seek(0) } })

2.video

默認寬度300px、高度225px

<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">
    <input bindblur="bindInputBlur" placeholder="輸入文字"/>
    <button bindtap="bindSendDanmu">發送彈幕</button>
  </view>
</view>
function getRandomColor () {
  let rgb = []
  for (let i = 0 ; i < 3; ++i){
    let color = Math.floor(Math.random() * 256).toString(16)
// 0.0 ~ 1.0 之間的一個偽隨機數。Math.random()。floor() 方法執行的是向下取整計算,它返回的是小於或等於函數參數,並且與之最接近的整數。toString() 方法可把一個邏輯值轉換為字符串,並返回結果。 color
= color.length == 1 ? 0 + color : color rgb.push(color) }
// join() 方法用於把數組中的所有元素放入一個字符串。
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 },
//發送彈幕文字 bindSendDanmu: function () {
this.videoContext.sendDanmu({ text: this.inputValue, color: getRandomColor() }) } })

微信小程序(9)--音頻及視頻播放