新聞中心
- video 視頻
- 屬性說明
- objectFit 有效值
- direction 有效值
- 主流格式支持
- 主流編碼格式支持
- 示例
- 代碼示例 1
- 圖片示例
- 代碼示例 2:controls
- 圖片示例
- 代碼示例 3:title
- 圖片示例
- 代碼示例 4:direction
- 圖片示例
- 代碼示例 5:show-progress
- 圖片示例
- 代碼示例 6:show-no-wifi-tip
- Bug & Tip
- Web 態(tài) Tip
- Tip1:在部分瀏覽器下,視頻無法自動(dòng)播放的解決方案
- Tip2:視頻類資源地址必須有文件擴(kuò)展名(即文件后綴)
- Tip3:在部分瀏覽器下,視頻播放器會(huì)遮擋其他頁(yè)面元素 / 小窗播放問題的解決方案
- Tip4:在部分瀏覽器下,視頻播放器退出全屏后會(huì)暫停播放
- 屬性說明
video 視頻
v3.70.0 起支持同層渲染,更多請(qǐng)參考原生組件。
解釋:視頻。video 組件默認(rèn)寬度 300px 、高度 225px 。該組件還提供豐富的 API 來控制視頻的播放、暫停、全屏、彈幕等,詳見 swan.createVideoContext 。
屬性說明
| 屬性名 | 類型 | 默認(rèn)值 | 必填 | 說明 | 最低支持版本 | Web 態(tài)說明 |
|---|---|---|---|---|---|---|
src | String | 是 | 視頻的資源地址,支持云文件 ID | 3.120.2 | 不支持設(shè)置云文件 ID | |
title | String | 否 | 視頻標(biāo)題,全屏?xí)r在視頻頂部展示 | 3.120.2 | 暫不支持,video 全屏模式無標(biāo)題 | |
initial-time | Number | 否 | 指定視頻初始播放位置 | - | - | |
controls | Boolean | true | 否 | 是否顯示默認(rèn)播放控件(播放/暫停按鈕、播放進(jìn)度、時(shí)間) | - | - |
autoplay | Boolean | false | 否 | 是否自動(dòng)播放 | - | 存在瀏覽器兼容問題,詳見下方 Web 態(tài) Tip1 |
loop | Boolean | false | 否 | 是否循環(huán)播放 | - | - |
muted | Boolean | false | 否 | 是否靜音播放 | - | - |
objectFit | String | contain | 否 | 當(dāng)視頻大小與 video 容器大小不一致時(shí),視頻的表現(xiàn)形式。contain:包含;fill:填充;cover:覆蓋 | - | - |
poster | String | 否 | 視頻封面的圖片網(wǎng)絡(luò)資源地址,支持云文件 ID | 3.120.2 | - | |
page-gesture | Boolean | false | 否 | 在非全屏模式下,是否開啟使用手勢(shì)調(diào)節(jié)亮度與音量,兼容 vslide-gesture 屬性 | - | 此屬性對(duì) Web 態(tài)不生效 |
direction | Number | 否 | 按設(shè)置的視頻全屏方向進(jìn)入全屏。不指定視頻全屏方向時(shí)則根據(jù)設(shè)備方向判斷全屏方向。0:正常豎向;90:屏幕順時(shí)針 90 度;-90:屏幕逆時(shí)針 90 度 | 3.90.29 | 暫不支持 | |
show-progress | Boolean | true | 否 | 若不設(shè)置,寬度大于 240 時(shí)才會(huì)顯示 | - | - |
show-fullscreen-btn | Boolean | true | 否 | 是否顯示全屏按鈕 | - | - |
enable-progress-gesture | Boolean | true | 否 | 是否開啟使用手勢(shì)控制進(jìn)度 | - | 此屬性對(duì) Web 態(tài)不生效 |
danmu-list | Array. | 否 | 彈幕列表 | - | - | |
danmu-btn | Boolean | false | 否 | 是否顯示彈幕按鈕,只在初始化時(shí)有效,不能動(dòng)態(tài)變更 | - | 此屬性對(duì) Web 態(tài)不生效 |
enable-danmu | Boolean | false | 否 | 是否展示彈幕,只在初始化時(shí)有效,不能動(dòng)態(tài)變更 | - | - |
show-play-btn | Boolean | true | 否 | 是否顯示視頻底部控制欄的播放按鈕 | - | - |
show-center-play-btn | Boolean | true | 否 | 是否顯示視頻中間的播放按鈕 | - | Web 態(tài)下,中間播放按鈕暫不支持隱藏,設(shè)置為 false 不生效 |
show-mute-btn | Boolean | false | 否 | 是否顯示靜音按鈕 | 3.120.2 | Web 態(tài)下,靜音按鈕暫不支持隱藏,設(shè)置為 false 不生效 |
show-no-wifi-tip | Boolean | true | 否 | 非 wifi 環(huán)境下是否顯示繼續(xù)播放浮層 | 3.100.4 | 此屬性對(duì) Web 態(tài)不生效 |
vslide-gesture | Boolean | false | 否 | 非全屏模式下,是否開啟亮度與音量調(diào)節(jié)手勢(shì),兼容 page-gesture 屬性 | 3.120.2 | 此屬性對(duì) Web 態(tài)不生效 |
vslide-gesture-in-fullscreen | Boolean | true | 否 | 全屏模式下,是否開啟亮度與音量調(diào)節(jié)手勢(shì) | 3.120.2 | 此屬性對(duì) Web 態(tài)不生效 |
enable-play-gesture | Boolean | false | 否 | 是否開啟播放手勢(shì),即雙擊切換播放/暫停 | 3.120.2 | 此屬性對(duì) Web 態(tài)不生效 |
show-rate-btn | Boolean | false | 否 | 是否顯示倍速播放按鈕 | 3.170.2 | - |
show-vslide-btn-in-fullscreen | Boolean | true | 否 | 全屏模式下,是否顯示側(cè)邊欄控制按鈕 | 3.170.2 | 此屬性對(duì) Web 態(tài)不生效 |
silent-play | Boolean | false | 否 | 是否進(jìn)入無聲視頻模式,進(jìn)入無聲視頻模式后,視頻將靜音播放且不響應(yīng)系統(tǒng)物理音量變化,點(diǎn)擊播放器提示無聲視頻,手勢(shì)調(diào)節(jié)失效 | 3.170.2 | 此屬性對(duì) Web 態(tài)不生效 |
bindplay | EventHandle | 否 | 當(dāng)開始播放時(shí)觸發(fā) play 事件 | - | - | |
bindpause | EventHandle | 否 | 當(dāng)暫停播放時(shí)觸發(fā) pause 事件 | - | - | |
bindended | EventHandle | 否 | 當(dāng)播放到末尾時(shí)觸發(fā) ended 事件 | - | - | |
bindtimeupdate | EventHandle | 否 | 播放進(jìn)度變化時(shí)觸發(fā)。 | - | - | |
bindfullscreenchange | EventHandle | 否 | 當(dāng)視頻進(jìn)入和退出全屏?xí)r觸發(fā)。 | - | - | |
bindwaiting | EventHandle | 否 | 視頻出現(xiàn)緩沖時(shí)觸發(fā) | - | - | |
binderror | EventHandle | 否 | 視頻播放出錯(cuò)時(shí)觸發(fā) | - | Web 態(tài)目前觸發(fā) error 后直接展示默認(rèn)錯(cuò)誤信息,不執(zhí)行開發(fā)者的 error 回調(diào)函數(shù) | |
bindloadedmetadata | EventHandle | 否 | 視頻元數(shù)據(jù)加載完成時(shí)觸發(fā)。 | 3.180.1 | - |
objectFit 有效值
| 值 | 說明 |
|---|---|
| contain | 包含 |
| fill | 填充 |
| cover | 覆蓋 |
direction 有效值
| 值 | 說明 |
|---|---|
| 0 | 正常豎向 |
| 90 | 屏幕順時(shí)針 90 度 |
| -90 | 屏幕逆時(shí)針 90 度 |
主流格式支持
| 格式 | Android | iOS | Web 態(tài) |
|---|---|---|---|
| mp4 | 是 | 是 | 是 |
| mov | 是 | 是 | 是 |
| m4v | 是 | 是 | 是 |
| 3gp | 是 | 是 | 否 |
| avi | 是 | 是 | 否 |
| m3u8 | 是 | 是 | 是 |
| webm | 是 | 否 | 否 |
| flv | 是 | 是 | 否 |
| mkv | 是 | 是 | 否 |
| rmvb | 是 | 是 | 否 |
| rm | 是 | 是 | 否 |
| ogg | 是 | 是 | 是 |
主流編碼格式支持
| 格式 | Android | iOS |
|---|---|---|
H.263 | 是 | 是 |
H.264 | 是 | 是 |
HEVC | 是 | 是 |
MPEG-4 | 是 | 否 |
VP8 | 是 | 否 |
VP9 | 是 | 否 |
示例
跳轉(zhuǎn)編輯工具
在開發(fā)者工具中打開
在 WEB IDE 中打開
掃碼體驗(yàn)
代碼示例
請(qǐng)使用百度APP掃碼
代碼示例 1
- SWAN
- JS
style="width: 100%;"id="myVideo"title="這是title"src="{{src}}"initial-time="{{initialTime}}"duration="48"controls="{{controls}}"autoplay="{{false}}"loop="{{false}}"muted="{{voice}}"objectFit="{{objectFit}}"poster="{{posterSrc}}"page-gesture="{{pageGesture}}"direction="{{0}}"show-progress="{{progressGesture}}"show-fullscreen-btn="{{fullscreenBtn}}"enable-progress-gesture="{{false}}"danmu-list="{{danmuList}}"danmu-btn="{{true}}"enable-danmu="{{true}}"show-play-btn="{{playBtn}}"show-center-play-btn="{{centerPlayBtn}}"show-mute-btn="{{true}}"show-no-wifi-tip="{{noWifiTip}}"show-rate-btn="{{showRateBtn}}"show-vslide-btn-in-fullscreen="{{showVslideBtnInFullscreen}}"silent-play="{{silentPlay}}"vslide-gesture="{{true}}"vslide-gesture-in-fullscreen="{{true}}"enable-play-gesture="{{true}}"bindplay="videoPlay"bindpause="videoPause"binderror="videoError"bindended="videoEnded"bindwaiting="videoWaiting"bindtimeupdate="videoTimeupdate"bindfullscreenchange="fullscreen"bindloadedmetadata="loadedmetadata">彈幕內(nèi)容 指定初始播放位置為20s(播放前點(diǎn)擊) 顯示默認(rèn)播放控件 設(shè)置循環(huán)播放 點(diǎn)擊{{voice ? '有音':'無音'}} 包含容器 填充容器 覆蓋容器 開啟手勢(shì)調(diào)節(jié)亮度與音量 {{fullscreenBtn?'不顯示':'顯示'}}全屏按鈕 去掉全屏播放時(shí)手勢(shì)控制進(jìn)度 {{playBtn ? '': '不'}}顯示視頻底部控制欄的播放按鈕 {{centerPlayBtn ? '': '不'}}顯示視頻中間的播放按鈕 wifi/4g浮層 切換視頻地址 {{showRateBtn ? '隱藏' : '顯示'}}倍速播放按鈕 {{showVslideBtnInFullscreen ? '隱藏': '顯示'}}全屏模式下的側(cè)邊欄控件 {{silentPlay ? '關(guān)閉': '開啟'}}無聲視頻模式
設(shè)計(jì)指南
默認(rèn)情況,會(huì)在 video 組件的中間和左下角顯示 2 個(gè) play-btn,請(qǐng)根據(jù)小程序自身需要合理配置。不建議同時(shí)使用 2 個(gè) play-btn,過多元素會(huì)增加用戶理解成本。
正確
只用一個(gè) play-btn,指引明確
錯(cuò)誤
同時(shí)使用2個(gè) play-btn,增加用戶理解成本
圖片示例
代碼示例 2:controls
在開發(fā)者工具中打開
在開發(fā)者工具中打開
在 WEB IDE 中打開
- SWAN
- JS
style="width: 100%;"id="myVideo"src="{{src}}"controls="{{controls}}">
圖片示例
代碼示例 3:title
在開發(fā)者工具中打開
在開發(fā)者工具中打開
在 WEB IDE 中打開
- SWAN
style="width: 100%;"id="myVideo"src="https://b.bdstatic.com/swan-temp/940fe716b0eaad38f47b209d61657490.mp4"title="全屏title">
圖片示例
代碼示例 4:direction
在開發(fā)者工具中打開
在開發(fā)者工具中打開
在 WEB IDE 中打開
- SWAN
- JS
style="width: 100%;"id="myVideo"src="{{src}}"direction="{{direction}}">
圖片示例
代碼示例 5:show-progress
在開發(fā)者工具中打開
在開發(fā)者工具中打開
在 WEB IDE 中打開
- SWAN
style="width: 100%;"id="myVideo"src="https://b.bdstatic.com/swan-temp/940fe716b0eaad38f47b209d61657490.mp4"show-progress="{{true}}">
圖片示例
代碼示例 6:show-no-wifi-tip
在開發(fā)者工具中打開
在開發(fā)者工具中打開
在 WEB IDE 中打開
- SWAN
style="width: 100%;"id="myVideo"src="{{src}}"show-no-wifi-tip="{{true}}">
Bug & Tip
- Bug:百度 App 11.26 版本,在視頻列表場(chǎng)景下,同時(shí)設(shè)置
show-play-btn屬性和show-center-play-btn屬性值為true可能會(huì)出現(xiàn)失焦視頻播放控件不顯示的情況,因此建議在視頻列表場(chǎng)景中,將video組件的show-play-btn屬性設(shè)置為false。 - Tip:同一頁(yè)面下的 video 標(biāo)簽不應(yīng)太多,建議不超過 5 個(gè),視頻列表功能建議使用 image 列表,選中時(shí)替換為 video 。
- Tip:避免多個(gè) video 同時(shí)播放,視頻預(yù)覽建議使用 gif 方案,使用 video 會(huì)降低性能和體驗(yàn)。
Web 態(tài) Tip
Tip1:在部分瀏覽器下,視頻無法自動(dòng)播放的解決方案
案例分析:
出于用戶體驗(yàn)、節(jié)省流量等原因,OS 的 Safari、版本號(hào) 66 及以上的 Chrome、以及大部分國(guó)產(chǎn)移動(dòng)瀏覽器禁止視頻在非靜音狀態(tài)下自動(dòng)播放。因此,Web 態(tài)針對(duì) video 組件中 autoplay 屬性設(shè)置為 true 后做了如下處理:
- 對(duì)于 QQ、Android 微信、 QQ 瀏覽器等基于 X5 內(nèi)核的平臺(tái),Web 態(tài)下設(shè)置的 autoplay = true 不生效,頁(yè)面進(jìn)入時(shí),視頻組件上顯示播放按鈕供用戶主動(dòng)點(diǎn)擊觸發(fā)播放。
- 對(duì)于其他非 X5 內(nèi)核的平臺(tái),為保證頁(yè)面進(jìn)入時(shí)可自動(dòng)播放,會(huì)默認(rèn)關(guān)閉聲音播放,并顯示“取消靜音”按鈕,供用戶主動(dòng)開啟聲音。
- 為“取消靜音”和播放按鈕設(shè)置了較高的 z-index 樣式層級(jí),開發(fā)者可以根據(jù)需要來決定是否覆蓋這兩類按鈕。
由于瀏覽器種類眾多,如出現(xiàn)自動(dòng)播放相關(guān)新問題,請(qǐng)將案例反饋給我們,我們將統(tǒng)一記錄并反饋進(jìn)展。
Tip2:視頻類資源地址必須有文件擴(kuò)展名(即文件后綴)
由于瀏覽器無法解析資源格式。因此對(duì)于視頻類資源,應(yīng)在地址中通過后綴名顯式聲明資源格式,否則可能會(huì)導(dǎo)致視頻無法正常播放:
- Web 態(tài) video 組件目前支持 mp4、mov、m4v、ogg、m3u8 等格式,參見上述主流格式支持小節(jié)。
- 當(dāng) video 組件的 src 屬性值沒有文件擴(kuò)展名,視頻會(huì)被按照 mp4 格式來進(jìn)行解碼播放。
Tip3:在部分瀏覽器下,視頻播放器會(huì)遮擋其他頁(yè)面元素 / 小窗播放問題的解決方案
案例分析:
微信、百度 App、UC 等瀏覽器實(shí)現(xiàn)了自身的播放器控件,劫持了默認(rèn)內(nèi)核提供的播放器樣式和邏輯,從而使得基于 H5 video 實(shí)現(xiàn)的 Web 態(tài) video 組件出現(xiàn)了以下問題:
- 在 Android 系統(tǒng)的微信平臺(tái)、百度 App 和 UC 等國(guó)產(chǎn)移動(dòng)瀏覽器下,Video 組件的播放器會(huì)覆蓋到頁(yè)面其他內(nèi)容之上,且無法通過 z-index 控制層級(jí),從而導(dǎo)致一些交互失效(比如無法上下滑動(dòng)觸發(fā)切換視頻)。
- 在 OPPO 手機(jī)下的百度 App,會(huì)出現(xiàn)小窗播放。
解決方案:
Web 態(tài)針對(duì)不同瀏覽器做了盡可能的修復(fù),以解決此問題。已修復(fù)的包括 QQ、Android 微信、QQ 瀏覽器等基于 X5 內(nèi)核的平臺(tái),百度 App。但由于瀏覽器種類眾多,有可能存在我們暫未覆蓋到的情況。如仍遇到上述問題,請(qǐng)您將案例反饋給我們,我們將統(tǒng)一記錄并反饋進(jìn)展。
Tip4:在部分瀏覽器下,視頻播放器退出全屏后會(huì)暫停播放
案例分析:
微信、QQ、QQ 瀏覽器等實(shí)現(xiàn)了自身的播放控件,從而使得 video 組件在退出全屏?xí)r出現(xiàn)視頻暫停播放的問題。
解決方案:
Web 態(tài)針對(duì) Android 下的微信、QQ 等基于 X5 內(nèi)核的平臺(tái)在退出全屏?xí)r展示一個(gè)中間播放按鈕,供用戶點(diǎn)擊來繼續(xù)播放視頻。OS 下因無法監(jiān)聽退出全屏事件,此問題暫無法解決。
文章標(biāo)題:創(chuàng)新互聯(lián)百度小程序教程:video視頻
轉(zhuǎn)載來于:http://fisionsoft.com.cn/article/cosoopp.html


咨詢
建站咨詢

