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


咨詢
建站咨詢

