video 视频收藏我的收藏
基础库 1.0.0 开始支持本组件
视频组件,相关 API 请参考 tt.createVideoContext。Codelab 教程请参考video视频组件的正确使用姿势。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 |
|
相关教程 | 无 |
属性说明
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
src | string | 无 | 否 |
| 1.0.0 |
autoplay | boolean | false | 否 | 是否自动播放。 | 1.0.0 |
poster | string | 无 | 否 | 视频封面的图片网络资源地址。 | 1.0.0 |
loop | boolean | false | 否 | 是否循环播放。 | 1.47.0 |
show-fullscreen-btn | boolean | true | 否 | 是否显示全屏按钮。 | 1.47.0 |
show-play-btn | boolean | true | 否 | 是否显示播放、暂停、重播按钮,不包括视频封面的播放按钮。 | 1.47.0 |
controls | boolean | true | 否 | 是否显示全部播放控件。 | 1.47.0 |
object-fit | enum | contain | 否 | 当视频大小与 video 容器大小不一致时,视频的表现形式。
| 1.47.0 |
play-btn-position | enum | center | 否 | 播放按钮的位置。
| 1.47.0 |
vslide-gesture | boolean | false | 否 | 在非全屏模式下,是否开启亮度与音量调节手势,开启后表现详见手势响应-亮度与音量。 | 2.3.0 |
vslide-gesture-in-fullscreen | boolean | true | 否 | 在全屏模式下,是否开启亮度与音量调节手势,开启后表现详见手势响应-亮度与音量。 | 2.3.0 |
enable-progress-gesture | boolean | false | 否 | 是否开启控制进度的手势,开启后表现详见手势响应-播放进度。 | 2.3.0 |
enable-play-gesture | boolean | false | 否 | 是否开启播放手势,即双击切换播放/暂停。 | 2.3.0 |
muted | boolean | false | 否 | 是否静音播放。 | 2.4.0 |
show-mute-btn | boolean | false | 否 | 是否显示静音控件,仅在全屏时显示。 | 2.4.0 |
show-playback-rate-btn | boolean | false | 否 | 是否显示倍速控件,仅在全屏时显示。点击倍速控件后可选择倍速,可选值: 0.75/1.0/1.25/1.5/2。 | 2.5.0 |
direction | enum | -90 | 否 | 设置全屏时视频的方向。 | 2.13.0 |
enable-play-in-background | boolean | false | 否 | video 播放时宿主退出后台后开启小窗播放,iOS 14 及以上版本支持。开启时首次退出后台后给予弹窗提示用户授权,授权完成后可以到小程序「设置」中重设。支持场景见后台小窗播放。 | 2.16.0 |
signature | Signature | 无 | 否 | 设置署名水印。 | 2.48.0 |
initial-time | number | 0 | 否 | 指定视频的初始播放位置。 | 2.80.0 |
show-screen-lock-button | boolean | false | 否 | 是否展示锁屏 按钮,仅在全屏时展示,锁屏后会锁定播控/手势的操作。 | 2.80.0 |
definition | Definition | 无 | 否 | 清晰度,设置清晰度列表和默认播放的清晰度。切换清晰度按钮仅在全屏时展示,属性说明详见 文档下面的 Definition 类型说明。需要保证 src 和 definition 中有一个为必填,若同时设置了 src 和 definition,definition 优先级高于 src。 | 2.80.0 |
show-progress | boolean | true | 否 | 是否展示中间的播放进度条。 | 2.90.0 |
show-bottom-progress | boolean | true | 否 | 是否展示底部的播放进度条。 | 2.90.0 |
poster-size | string | contain | 否 | 视频的封面图片大小与 video 容器大小不一致时,封面图片的表现形式。
| 2.90.0 |
duration-limit | number | 否 | 限制视频的最大可播放时长,用于试看等场景。 | 2.90.0 | |
bindplay | function | 无 | 否 | 当开始播放时触发 play 事件。 | 1.0.0 |
bindpause | function | 无 | 否 | 当暂停播放时触发 pause 事件。 | 1.0.0 |
bindended | function | 无 | 否 | 当播放到末尾时触发 ended 事件。 | 1.0.0 |
binderror | function | 无 | 否 | 视频播放出错时触发 error 事件。 | 1.0.0 |
bindtimeupdate | function | 无 | 否 | 播放进度变化时触发,返回当前播放时间点及视频总时长,单位:秒(s)。`event.detail = { currentTime, duration }`。 | 1.18.0 |
bindprogress | function | 无 | 否 | 视频缓冲进度更新时触发,`event.detail = { buffered }`。其中 buffered 是百分比,取值是 [0, 100] 中的整数,如 buffered 为 50 表示当前视频缓冲了 50%。 | 2.65.0 |
bindfullscreenchange | function | 无 | 否 | 视频进入和退出全屏时触发,`event.detail = { fullScreen, direction}`,其中 direction 仅在 fullScreen 字段为 true 时存在,有效值为 vertical 或 horizontal。 | 1.18.0 |
bindcontrolstoggle | function | 无 | 否 | 切换播放控件显示/隐藏时触发。`event.detail = { show }`。 | 2.90.0 |
bindwaiting | function | 无 | 否 | 视频出现缓冲时触发。 | 1.47.0 |
bindloadedmetadata | function | 无 | 否 | 视频元数据加载完成时触发。`event.detail = {width, height, duration}`。 | 1.90.0 |
bindseekcomplete | function | 无 | 否 | seek 完成时触发。返回 seek 完成后的播放时间点,单位:秒(s)。`event.detail={position}`。 | 2.11.0 |
bindplaybackratechange | function | 无 | 否 | 视频倍速改变完成时触发。返回改变后的倍速值。`event.detail={playbackRate}`。 | 2.11.0 |
bindmutechange | function | 无 | 否 | 静音状态改变完成时触发。返回当前是否静音。`event.detail={isMuted}`。 | 2.11.0 |
bindcontroltap | function | 无 | 否 | 点击控件时触发。返回当前点击的控件类型。`event.detail={controlType}`,取值见表 controlType 的合法值。 | 2.11.0 |
bindenterbackground | function | 无 | 否 | 进入小窗播放时触发。 | 2.16.0 |
bindclosebackground | function | 无 | 否 | 关闭小窗播放时触发。 | 2.16.0 |
bindleavebackground | function | 无 | 否 | 离开小窗进入 app 事件时触发。 | 2.16.0 |
enable-dark-water-mark | boolean | false | 否 | 是否开启界面暗水印功能,用于视频防盗录场景。暗水印解码效果需要根据实际情况而定。小程序使用了暗水印能力后出现的盗录场景,可以拉客服咨询。 | 2.98.0 |
encrypted-token | string | 无 | 否 | 对视频内容的传输过程进行加密,通过 encrypted-token 设置通用加密(CENC)的解密 key,加密流程见 FFmpeg通用加密,IDE 暂不支持。 | 2.98.0 |
show-casting-button | boolean | false | 否 | 是否显示投屏按钮/菜单,仅在全屏时展示(当前仅支持 Android,iOS 敬请期待)。 | 3.2.0 |
definition 参数说明
Definition
object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
list | DefinitionListItem[] | 无 | 是 | 清晰度列表 | 2.80.0 |
defaultDefinition | string | 无 | 否 | 默认播放的清晰度,可选值:'360P' / '480P' / '720P' / '1080P' / '2K' / '4K'。没有设置时,会以 list 列表中设置的最高清晰度作为默认值播放。 | 2.80.0 |
DefinitionListItem 类型说明
object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
name | string | 无 | 是 | url 对应的清晰度,可选值:'360P' / '480P' / '720P' / '1080P' / '2K' / '4K'。 | 2.80.0 |
url | string | 无 | 是 | 对应清晰度的视频播放链接,需要以 'http://'、'https://'、'ttfile://' 或 'file://' 开头。 | 2.80.0 |
object-fit 的合法值
值 | 说明 | 最低支持版本 |
---|---|---|
contain | 包含。内容将会在填充内容框的时候保持其宽高比例缩放,因此如果宽高比与内容框的宽高比不匹配,将会有黑边。 | 1.47.0 |
fill | 填充。如果内容的宽高比与内容框的不匹配,该对象将被拉伸以适应内容框。 | 1.47.0 |
cover | 覆盖。内容在保持其宽高比的同时填充整个内容框。如果内容的宽高比与内容框不匹配,该对象将被裁剪以适应内容框。 | 1.47.0 |
play-btn-position 的合法值
值 | 说明 | 最低支持版本 |
---|---|---|
center | 视频中间 | 1.47.0 |
bottom | 控制条上 | 1.47.0 |
direction 的合法值
值 | 说明 | 最低支持版本 |
---|---|---|
0 | 正常竖向 | 2.13.0 |
90 | 屏幕逆时针 90 度 | 2.13.0 |
-90 | 屏幕顺时针 90 度 | 2.13.0 |
错误码
errorCode | errMsg | errorType | 说明 | 最低支持版本 |
---|---|---|---|---|
137909 | error code = -9999 或 domain:kTTVideoErrorDomainFetchingInfo, code:-9999 | D | 应用层传给点播SDK的URL参数为空或类型错误 建议检查api参数 | 1.0.0 |
137904 | domain:kTTVideoErrorDomainVideoOwnPlayer, code:-1414092869 | U | 用户中断,用户退出播放或seek 用户中断,用户退出播放或seek | 1.0.0 |
137907 | domain:kTTVideoErrorDomainVideoOwnPlayer, code:-5 | D | 内部错误(EIO)/起播阶段的网络错误 建议更换视频网址,或查看是否为用户网络差 | 1.0.0 |
137906 | domain:kTTVideoErrorDomainVideoOwnPlayer, code:-499896 | D | 404,找不到,一般是流结束已久,url失效 建议更换视频网址 | 1.0.0 |
137901 | domain:kTTVideoErrorDomainVideoOwnPlayer, code:-101, internalCode:0, description: | F | 小程序框架内部错误,有需要请拉客服咨询 收到该错误码上报,需要再结合日志做进一步归因。 | 1.0.0 |
137905 | domain:kTTVideoErrorDomainVideoOwnPlayer, code:-499897 | U | 403,禁止访问 建议更换视频网址 | 1.0.0 |
137902 | domain:kTTVideoErrorDomainFetchingInfo, code:-9994 | D | http请求返回code不是200或请求play接口失败,常见于网络差的情况 检查网络 | 1.0.0 |
137903 | error code = -499793 | D | TCP请求网络超时 |