今天我們做一個視頻播放器。在app.json中配置好頁面路由和權(quán)限。
1.app.json
{
"pages":[
"pages/video/video"
],
"permission": {
"scope.writePhotosAlbum": {
"desc": "讀取相冊"
}
}
}
使用video組件
2. video.wxml
<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">發(fā)送彈幕</button>
</view>
</view>
3. audio.js
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({
onReady(res) {
this.videoContext = wx.createVideoContext('myVideo')
},
inputValue: '',
data: {
src: '',
danmuList: [
{
text: '第 1s 出現(xiàn)的彈幕',
color: '#ff0000',
time: 1
},
{
text: '第 3s 出現(xiàn)的彈幕',
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
})
}
})
},
bindSendDanmu() {
this.videoContext.sendDanmu({
text: this.inputValue,
color: getRandomColor()
})
}
})
4. 效果圖

視頻播放器
具體細節(jié)參考小程序官方開發(fā)文檔。
原文作者:Anting全棧開發(fā)
技術(shù)博客:http://www.itdecent.cn/u/259b7db6cc20
90后,愛編程,愛運營,文藝與代碼齊飛,魅力與智慧共存的全棧開發(fā)一枚。
堅持總結(jié)工作中遇到的技術(shù)問題,堅持記錄工作中所所思所見,對于博客上面有不會的問題,可以加入qq技術(shù)交流群聊:649040560。