W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
版本需求:基礎(chǔ)庫(kù)版本 1.10.0 開始支持,低版本需要做 兼容處理。
用戶可通過 video 組件播放視頻。相關(guān) API:my.createVideoContext。
說明:
<view>
<video id="myVideo"
src="{{video.src}}"
controls="{{video.showAllControls}}"
loop="{{video.isLooping}}"
muted="{{video.muteWhenPlaying}}"
show-fullscreen-btn="{{video.showFullScreenButton}}"
show-play-btn="{{video.showPlayButton}}"
show-center-play-btn="{{video.showCenterButton}}"
object-fit="{{video.objectFit}}"
autoplay="{{video.autoPlay}}"
direction="{{video.directionWhenFullScreen}}"
initial-time="{{video.initTime}}"
mobilenetHintType="{{video.mobilenetHintType}}"
onPlay="onPlay"
onPause="onPause"
onEnded="onEnded"
onError="onPlayError"
onTimeUpdate="onTimeUpdate"
/>
</view>
Page({
data: {
status: "inited",
time: "0",
video: {
src: "XNDM0OTQzMDc2OA==",
showAllControls: false,
showPlayButton: false,
showCenterButton: true,
showFullScreenButton: true,
isLooping: false,
muteWhenPlaying: false,
initTime: 0,
objectFit: "contain",
autoPlay: false,
directionWhenFullScreen: 90,
mobilenetHintType: 2,
},},
onPlay(e) {
console.log('onPlay');
},
onPause(e) {
console.log('onPause');
},
onEnded(e) {
console.log('onEnded');
},
onPlayError(e) {
console.log('onPlayError, e=' + JSON.stringify(e));
},
onTimeUpdate(e) {
console.log('onTimeUpdate:', e.detail.currentTime);
},
});
屬性名 | 類型 | 默認(rèn)值 | 說明 | 最低版本 |
---|---|---|---|---|
style | String | - | 內(nèi)聯(lián)樣式。 | - |
class | String | - | 外部樣式名。 | - |
src | String | - | 要播放視頻的資源地址,支持優(yōu)酷視頻編碼(支付寶客戶端10.1.75)。src支持的協(xié)議如下:vid/showId: XMzg2Mzc5MzMwMA==apFilePath: https://resource/xxx.video | - |
poster | String | - | 視頻封面圖的 url,支持 jpg、png 等圖片,如https://***.jpg。如果不傳的話,默認(rèn)取視頻的首幀圖作為封面圖。 | - |
poster-size | String | contain | 當(dāng) poster 高寬比跟視頻高寬不匹配時(shí),如何顯示 poster,設(shè)置規(guī)則同 background-size 一致。 | - |
object-fit | String | contain | 當(dāng)視頻大小與 video 容器大小不一致時(shí),視頻的表現(xiàn)形式。contain:包含,fill:填充。 | - |
initial-time | Number | - | 指定視頻初始播放位置,單位s | 1.9.0 |
duration | Number | - | 指定視頻時(shí)長(zhǎng),單位s,默認(rèn)讀取視頻本身時(shí)長(zhǎng)信息 | - |
controls | Boolean | true | 是否顯示默認(rèn)播放控件(底部工具條,包括播放/暫停按鈕、播放進(jìn)度、時(shí)間) | - |
autoplay | Boolean | false | 是否自動(dòng)播放 | - |
direction | Number | - | 設(shè)置全屏?xí)r視頻的方向,不指定則根據(jù)寬高比自動(dòng)判斷。有效值為 0(正常豎向), 90(屏幕逆時(shí)針90度), -90(屏幕順時(shí)針90度) | 1.12.0 |
loop | Boolean | false | 是否循環(huán)播放 | 1.9.0 |
muted | Boolean | false | 是否靜音播放 | 1.9.0 |
show-fullscreen-btn | Boolean | true | 是否顯示全屏按鈕 | 1.9.0 |
show-play-btn | Boolean | true | 是否顯示視頻底部控制欄的播放按鈕 | 1.9.0 |
show-center-play-btn | Boolean | true | 是否顯示視頻中間的播放按鈕 | 1.9.0 |
show-mute-btn | Boolean | true | 是否展示工具欄上的靜音按鈕 | 1.13.7 |
show-thin-progress-bar | Boolean | false | 當(dāng)?shù)撞抗ぞ邨l隱藏時(shí),是否顯示細(xì)進(jìn)度條(controls=false時(shí)設(shè)置無效) | 1.15.0 |
enable-progress-gesture | Boolean | true | 全屏模式下是否開啟控制進(jìn)度的手勢(shì) | 1.9.0 |
mobilenet-hint-type | Number | 1 | 移動(dòng)網(wǎng)絡(luò)提醒樣式:0-不提醒;1-tip提醒;2-阻塞提醒(無消耗流量大小);3-阻塞提醒(有消耗流量大小提醒) | 1.13.0 |
onPlay | EventHandle | - | 當(dāng)開始/繼續(xù)播放時(shí)觸發(fā)play事件 | - |
onPause | EventHandle | - | 當(dāng)暫停播放時(shí)觸發(fā) pause 事件 | - |
onEnded | EventHandle | - | 當(dāng)播放到末尾時(shí)觸發(fā) ended 事件 | - |
onTimeUpdate | EventHandle | - | 播放進(jìn)度變化時(shí)觸發(fā),event.detail = {currentTime: '當(dāng)前播放時(shí)間',userPlayDuration:'用戶實(shí)際觀看時(shí)長(zhǎng)',videoDuration:'視頻總時(shí)長(zhǎng)'} | 1.9.0 |
onLoading | EventHandle | - | 視頻出現(xiàn)緩沖時(shí)觸發(fā) | - |
onError | EventHandle | - | 視頻播放出錯(cuò)時(shí)觸發(fā)(errorCode見下面錯(cuò)誤碼表) | - |
onFullScreenChange | EventHandle | - | 視頻進(jìn)入和退出全屏?xí)r觸發(fā),event.detail = {fullScreen, direction},direction取為 vertical 或 horizontal | 1.12.0 |
onTap | EventHandle | - | 點(diǎn)擊視頻view時(shí)觸發(fā),event.detail = {ptInView:{x:0,y:0}} | - |
onUserAction | EventHandle | - | 用戶操作事件,event.detail = {tag:"mute", value:0},tag為用戶操作的元素,目前支持的tag有:play(底部播放按鈕)、centerplay(中心播放按鈕)、mute(靜音按鈕)、fullscreen(全屏按鈕)、retry(重試按鈕)、mobilenetplay(網(wǎng)絡(luò)提醒的播放按鈕) | - |
onStop | EventHandle | - | 視頻播放終止。 | 1.9.0 |
onRenderStart | EventHandle | - | 當(dāng)視頻加載完真正開始播放時(shí)觸發(fā)。 | 1.13.6 |
onTap | EventHandle | - | 點(diǎn)擊視頻 view 時(shí)觸發(fā),event.detail = {ptInView:{x:0,y:0}}。 | - |
錯(cuò)誤碼 | 大類 | 詳細(xì)說明 |
---|---|---|
1 | loading、playing 過程中都可能拋出 | 未知錯(cuò)誤。 |
1002 | loading、playing 過程中都可能拋出 | 播放器內(nèi)部錯(cuò)誤。 |
1005 | loading、playing 過程中都可能拋出 | 網(wǎng)絡(luò)連接失敗。 |
1006 | loading 異常 | 數(shù)據(jù)源錯(cuò)誤。 |
1007 | loading 異常 | 播放器準(zhǔn)備失敗。 |
1008 | loading 異常 | 網(wǎng)絡(luò)錯(cuò)誤。 |
1009 | loading 異常 | 搜索視頻出錯(cuò)(源出錯(cuò)的一種)。 |
1010 | loading 異常 | 準(zhǔn)備超時(shí),也可認(rèn)為是網(wǎng)絡(luò)太慢或數(shù)據(jù)源太慢導(dǎo)致的播放失敗。 |
400 | loading 異常 | 讀 ups 信息超時(shí)。 |
3001 | loading 異常 | audio 渲染出錯(cuò)。 |
3002 | loading 異常 | 硬解碼錯(cuò)誤。 |
2004 | playing 過程中可能拋出 | 播放過程中加載時(shí)間超時(shí)。 |
1023 | playing 過程中可能拋出 | 播放中內(nèi)部錯(cuò)誤(ffmpeg 內(nèi)錯(cuò)誤)。 |
iOS、Android 支持以下視頻封裝格式: mp4、mov、m4v、3gp、m3u8、flv
iOS、Android 支持以下編碼格式: H.264、H.265、AAC
目前的緩存策略是如果視頻是循環(huán)播放的,再次觀看是拉取的緩存,如果不是循環(huán)播放,每次都是網(wǎng)絡(luò)重新加載。 主要是針對(duì)一些循環(huán)播放的短視頻場(chǎng)景提供緩存能力。
頁(yè)面銷毀或者關(guān)閉小程序會(huì)清除掉。
在視頻組件 onTimeUpdate 方法中獲取。
雖然再次播放拉取的是緩存中的視頻,但是還是會(huì)校驗(yàn)視頻資源的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: