微信小程序媒體組件video視頻,微信小程序視頻組件庫
2017-12-22
導讀:video 視頻。 屬性名 類型 默認值 說明 最低版本 src String 要播放視頻的資源地址 duration Number 指定視頻時長 1.1.0 controls Boolean true 是否顯示默認播放控件(播放/暫停按鈕、播放進度、時間...
video
視頻。
屬性名 | 類型 | 默認值 | 說明 | 最低版本 |
---|---|---|---|---|
src | String | 要播放視頻的資源地址 | ||
duration | Number | 指定視頻時長 | 1.1.0 | |
controls | Boolean | true | 是否顯示默認播放控件(播放/暫停按鈕、播放進度、時間) | |
danmu-list | Object Array | 彈幕列表 | ||
danmu-btn | Boolean | false | 是否顯示彈幕按鈕,只在初始化時有效,不能動態(tài)變更 | |
enable-danmu | Boolean | false | 是否展示彈幕,只在初始化時有效,不能動態(tài)變更 | |
autoplay | Boolean | false | 是否自動播放 | |
loop | Boolean | false | 是否循環(huán)播放 | 1.4.0 |
muted | Boolean | false | 是否靜音播放 | 1.4.0 |
bindplay | EventHandle | 當開始/繼續(xù)播放時觸發(fā)play事件 | ||
bindpause | EventHandle | 當暫停播放時觸發(fā) pause 事件 | ||
bindended | EventHandle | 當播放到末尾時觸發(fā) ended 事件 | ||
bindtimeupdate | EventHandle | 播放進度變化時觸發(fā),event.detail = {currentTime: '當前播放時間'} 。觸發(fā)頻率應該在 250ms 一次 | ||
bindfullscreenchange | EventHandle | 當視頻進入和退出全屏是觸發(fā),event.detail = {fullScreen: '當前全屏狀態(tài)'} | 1.4.0 | |
objectFit | String | contain | 當視頻大小與 video 容器大小不一致時,視頻的表現(xiàn)形式。contain:包含,fill:填充,cover:覆蓋 | |
poster | String | 默認控件上的音頻封面的圖片資源地址,如果 controls 屬性值為 false 則設置 poster 無效 |
video標簽認寬度300px、高度225px,設置寬高需要通過wxss設置width和height。
示例代碼:
<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">發(fā)送彈幕</button>
</view>
</view>
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 出現(xiàn)的彈幕',
color: '#ff0000',
time: 1
},
{
text: '第 3s 出現(xiàn)的彈幕',
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()
})
}
})
相關api:wx.createVideoContext
Bug & Tip
-
tip
:video
組件是由客戶端創(chuàng)建的原生組件,它的層級是最高的。 -
tip
: 請勿在scroll-view
中使用video
組件。 -
tip
:css
動畫對video
組件無效。
第二部分:如何開通一個小商店
您可能感興趣: