# 媒体组件

# 媒体组件说明

组件 说明 最低版本 备注
audio 音频 1.0.0
image 图片 1.0.0
video 视频 1.0.0
camera 照相机 2.9.3
live-player 实时音频播放 2.10.1 需配合第三方音视频 SDK 使用
live-pusher 实时音频录制 2.10.1 需配合第三方音视频 SDK 使用
voip-room 多人音视频对话 不支持

# audio

属性 类型 默认值 必填 说明 最低版本
id string audio 组件的唯一标识符 1.0.0
src string 要播放音频的资源地址 1.0.0
loop boolean false 是否循环播放 1.0.0
controls boolean false 是否显示默认控件 1.0.0
poster string 默认控件上的音频封面的图片资源地址,如果 controls 属性值为 false 则设置 poster 无效 1.0.0
name string 未知音频 默认控件上的音频名字,如果 controls 属性值为 false 则设置 name 无效 1.0.0
author string 未知作者 默认控件上的作者名字,如果 controls 属性值为 false 则设置 author 无效 1.0.0
binderror eventhandle 当发生错误时触发 error 事件,detail = {errMsg:MediaError.code} 1.0.0
bindplay eventhandle 当开始/继续播放时触发 play 事件 1.0.0
bindpause eventhandle 当暂停播放时触发 pause 事件 1.0.0
bindtimeupdate eventhandle 当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration} 1.0.0
bindended eventhandle 当播放到末尾时触发 ended 事件 1.0.0

# image

属性 类型 默认值 必填 说明 最低版本
src string 图片资源地址 2.11.4
mode string scaleToFill 图片裁剪、缩放的模式 2.11.4
binderror eventhandle 当错误发生时触发,event.detail = {errMsg} 2.11.4
bindload eventhandle 当图片载入完毕时触发,event.detail = {height, width} 2.11.4
webp boolean false 默认不解析 webP 格式,只支持网络资源 不支持
lazy-load boolean false 图片懒加载,在即将进入一定范围(上下三屏)时才开始加载 2.12.2
show-menu-by-longpress boolean false 开启长按图片显示识别小程序码菜单 不支持

# mode 的合法值

说明 最低版本
scaleToFill 缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
aspectFit 缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
aspectFill 缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
widthFix 缩放模式,宽度不变,高度自动变化,保持原图宽高比不变
heightFix 缩放模式,高度不变,宽度自动变化,保持原图宽高比不变
top 裁剪模式,不缩放图片,只显示图片的顶部区域
bottom 裁剪模式,不缩放图片,只显示图片的底部区域
center 裁剪模式,不缩放图片,只显示图片的中间区域
left 裁剪模式,不缩放图片,只显示图片的左边区域
right 裁剪模式,不缩放图片,只显示图片的右边区域
top left 裁剪模式,不缩放图片,只显示图片的左上边区域
top right 裁剪模式,不缩放图片,只显示图片的右上边区域
bottom left 裁剪模式,不缩放图片,只显示图片的左下边区域
bottom right 裁剪模式,不缩放图片,只显示图片的右下边区域

# live-player

请注意

live-player是与 声网 (opens new window)合作实现的功能,使用本组件需要您在 App 中集成小程序 SDK 与声网 SDK 后,方可使用。

您可以查看 github 示例 (opens new window)gitee 示例 (opens new window)获得详细信息。

属性 类型 默认值 必填 说明 最低版本
src string 音视频地址。目前仅支持 flv, rtmp 格式 1.7.0
mode string live 模式 1.7.0
autoplay boolean false 自动播放 1.7.0
muted boolean false 是否静音 1.7.0
orientation string vertical 画面方向 1.7.0
object-fit string contain 填充模式,可选值有 contain,fillCrop 1.7.0
background-mute boolean false 进入后台时是否静音(已废弃,默认退后台静音) 1.7.0
min-cache number 1 最小缓冲区,单位 s(RTC 模式推荐 0.2s) 1.7.0
max-cache number 3 最大缓冲区,单位 s(RTC 模式推荐 0.8s)。缓冲区用来抵抗网络波动,缓冲数据越多,网络抗性越好,但时延越大。 1.7.0
sound-mode string speaker 声音输出方式 1.9.90
auto-pause-if-navigate boolean true 当跳转到本小程序的其他页面时,是否自动暂停本页面的实时音视频播放 2.5.0
auto-pause-if-open-native boolean true 当跳转到其它原生页面时,是否自动暂停本页面的实时音视频播放 2.5.0
picture-in-picture-mode string/Array 设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"]) 2.10.3
bindstatechange eventhandle 播放状态变化事件,detail = {code} 1.7.0
bindfullscreenchange eventhandle 全屏变化事件,detail = {direction, fullScreen} 1.7.0
bindnetstatus eventhandle 网络状态通知,detail = {info} 1.9.0
bindaudiovolumenotify eventhandler 播放音量大小通知,detail = {} 2.10.0
bindenterpictureinpicture eventhandler 播放器进入小窗 2.11.0
bindleavepictureinpicture eventhandler 播放器退出小窗 2.11.0

# mode 的合法值

说明 最低版本
live 直播
RTC 实时通话,该模式时延更低

# orientation 的合法值

说明 最低版本
vertical 竖直
horizontal 水平

# object-fit 的合法值

说明 最低版本
contain 图像长边填满屏幕,短边区域会被填充⿊⾊
fillCrop 图像铺满屏幕,超出显示区域的部分将被截掉

# sound-mode 的合法值

说明 最低版本
speaker 扬声器
ear 听筒

# picture-in-picture-mode 的合法值

说明 最低版本
[] 取消小窗
push 路由 push 时触发小窗
pop 路由 pop 时触发小窗

# 状态码

代码 说明
2001 已经连接服务器
2002 已经连接 RTMP 服务器,开始拉流
2003 网络接收到首个视频数据包(IDR)
2004 视频播放开始
2005 视频播放进度
2006 视频播放结束
2007 视频播放 Loading
2008 解码器启动
2009 视频分辨率改变
-2301 网络断连,且经多次重连抢救无效,更多重试请自行重启播放
-2302 获取加速拉流地址失败
2101 当前视频帧解码失败
2102 当前音频帧解码失败
2103 网络断连, 已启动自动重连
2104 网络来包不稳:可能是下行带宽不足,或由于主播端出流不均匀
2105 当前视频播放出现卡顿
2106 硬解启动失败,采用软解
2107 当前视频帧不连续,可能丢帧
2108 当前流硬解第一个 I 帧失败,SDK 自动切软解
3001 RTMP -DNS 解析失败
3002 RTMP 服务器连接失败
3003 RTMP 服务器握手失败
3005 RTMP 读/写失败,之后会发起网络重试

# 网络状态数据

键名 说明
videoBitrate 当前视频编/码器输出的比特率,单位 kbps
audioBitrate 当前音频编/码器输出的比特率,单位 kbps
videoFPS 当前视频帧率
videoGOP 当前视频 GOP,也就是每两个关键帧(I 帧)间隔时长,单位 s
netSpeed 当前的发送/接收速度
netJitter 网络抖动情况,为 0 时表示没有任何抖动,值越大表明网络抖动越大,网络越不稳定
netQualityLevel 网络质量:0:未定义 1:最好 2:好 3:一般 4:差 5:很差 6:不可用
videoWidth 视频画面的宽度
videoHeight 视频画面的高度
videoCache 缓冲的视频总时长,单位毫秒
audioCache 缓冲的音频总时长,单位毫秒
vDecCacheSize 解码器中缓存的视频帧数 (Android 端硬解码时存在)
vSumCacheSize 缓冲的总视频帧数,该数值越大,播放延迟越高
avPlayInterval 音画同步错位时间(播放),单位 ms,此数值越小,音画同步越好
avRecvInterval 音画同步错位时间(网络),单位 ms,此数值越小,音画同步越好
audioCacheThreshold 音频缓冲时长阈值,缓冲超过该阈值后,播放器会开始调控延时

# live-pusher

请注意

live-pusher是与声网 (opens new window)合作实现的功能,使用本组件需要您在 App 中集成小程序 SDK 与声网 SDK 后,方可使用。

您可以查看 github 示例 (opens new window)gitee 示例 (opens new window)获得详细信息。

属性 类型 默认值 必填 说明 最低版本
url string 推流地址。目前仅支持 rtmp 格式 1.7.0
mode string RTC SD(标清), HD(高清), FHD(超清), RTC(实时通话) 1.7.0
autopush boolean false 自动推流 1.7.0
muted boolean false 是否静音。即将废弃,可用 enable-mic 替代 1.7.0
enable-camera boolean true 开启摄像头 1.7.0
auto-focus boolean true 自动聚集 1.7.0
orientation string vertical 画面方向 1.7.0
beauty number 0 美颜,取值范围 0-9 ,0 表示关闭 1.7.0
whiteness number 0 美白,取值范围 0-9 ,0 表示关闭 1.7.0
aspect string 9:16 宽高比,可选值有 3:4, 9:16 1.7.0
min-bitrate number 200 最小码率 1.7.0
max-bitrate number 1000 最大码率 1.7.0
audio-quality string high 高音质(48KHz)或低音质(16KHz),值为 high, low 1.7.0
waiting-image string 进入后台时推流的等待画面 1.7.0
waiting-image-hash string 等待画面资源的 MD5 值 1.7.0
zoom boolean false 调整焦距 2.1.0
device-position string front 前置或后置,值为 front, back 2.3.0
background-mute boolean false 进入后台时是否静音(已废弃,默认退后台静音) 1.7.0
mirror boolean false 设置推流画面是否镜像,产生的效果在 live-player 反应到 2.7.0
remote-mirror boolean false 同 mirror 属性,后续 mirror 将废弃 2.10.0
local-mirror string auto 控制本地预览画面是否镜像 2.10.0
audio-reverb-type number 0 音频混响类型 2.10.0
enable-mic boolean true 开启或关闭麦克风 2.10.0
enable-agc boolean false 是否开启音频自动增益 2.10.0
enable-ans boolean false 是否开启音频噪声抑制 2.10.0
audio-volume-type string auto 音量类型 2.10.0
video-width number 360 上推的视频流的分辨率宽度 2.10.0
video-height number 640 上推的视频流的分辨率高度 2.10.0
beauty-style string smooth 设置美颜类型 2.12.0
filter string standard 设置色彩滤镜 2.12.0
bindstatechange eventhandle 状态变化事件,detail = {code} 1.7.0
bindnetstatus eventhandle 网络状态通知,detail = {info} 1.9.0
binderror eventhandle 渲染错误事件,detail = {errMsg, errCode} 1.7.4
bindbgmstart eventhandle 背景音开始播放时触发 2.4.0
bindbgmprogress eventhandle 背景音进度变化时触发,detail = {progress, duration} 2.4.0
bindbgmcomplete eventhandle 背景音播放完成时触发 2.4.0
bindaudiovolumenotify eventhandle 返回麦克风采集的音量大小 2.12.0

# orientation 的合法值

说明 最低版本
vertical 竖直
horizontal 水平

# local-mirror 的合法值

说明 最低版本
auto 前置摄像头镜像,后置摄像头不镜像
enable 前后置摄像头均镜像
disable 前后置摄像头均不镜像

# audio-reverb-type 的合法值

说明 最低版本
0 关闭
1 KTV
2 小房间
3 大会堂
4 低沉
5 洪亮
6 金属声
7 磁性

# audio-volume-type 的合法值

说明 最低版本
auto 自动
media 媒体音量
voicecall 通话音量

# beauty-style 的合法值

说明 最低版本
smooth 光滑美颜
nature 自然美颜

# filter 的合法值

说明 最低版本
standard 标准
pink 粉嫩
nostalgia 怀旧
blues 蓝调
romantic 浪漫
cool 清凉
fresher 清新
solor 日系
aestheticism 唯美
whitening 美白
cerisered 樱红

# video

属性 类型 默认值 必填 说明 最低版本
src string 要播放视频的资源地址,支持网络路径、本地临时路径 1.0.0
duration number 指定视频时长 1.1.0
controls boolean true 是否显示默认播放控件(播放/暂停按钮、播放进度、时间) 1.0.0
danmu-list Array.<object> 弹幕列表 1.0.0
danmu-btn boolean false 是否显示弹幕按钮,只在初始化时有效,不能动态变更 1.0.0
enable-danmu boolean false 是否展示弹幕,只在初始化时有效,不能动态变更 1.0.0
autoplay boolean false 是否自动播放 1.0.0
loop boolean false 是否循环播放 2.11.2
muted boolean false 是否静音播放 2.11.2
initial-time number 0 指定视频初始播放位置 2.11.2
direction number 设置全屏时视频的方向,不指定则根据宽高比自动判断 2.11.2
show-progress boolean true 若不设置,宽度大于 240 时才会显示 2.11.2
show-fullscreen-btn boolean true 是否显示全屏按钮 2.11.2
show-play-btn boolean true 是否显示视频底部控制栏的播放按钮 2.11.2
show-center-play-btn boolean true 是否显示视频中间的播放按钮 2.11.2
enable-progress-gesture boolean true 是否开启控制进度的手势 2.11.2
object-fit string contain 当视频大小与 video 容器大小不一致时,视频的表现形式 1.0.0
poster string 视频封面的图片网络资源地址或云文件 ID(2.3.0)。若 controls 属性值为 false 则设置 poster 无效 1.0.0
show-mute-btn boolean false 是否显示静音按钮 2.11.2
title string 视频的标题,全屏时在顶部展示 2.11.2
play-btn-position string bottom 播放按钮的位置 2.11.2
enable-play-gesture boolean false 是否开启播放手势,即双击切换播放/暂停 2.11.2
auto-pause-if-navigate boolean true 当跳转到本小程序的其他页面时,是否自动暂停本页面的视频播放 2.11.2
auto-pause-if-open-native boolean true 当跳转到其它 APP 原生页面时,是否自动暂停本页面的视频 2.11.2(仅 Android 支持)
vslide-gesture boolean false 在非全屏模式下,是否开启亮度与音量调节手势(同 page-gesture) 2.11.2
vslide-gesture-in-fullscreen boolean true 在全屏模式下,是否开启亮度与音量调节手势 2.11.2
poster-for-crawler string 用于给搜索等场景作为视频封面展示,建议使用无播放 icon 的视频封面图,只支持网络地址 未支持
show-casting-button boolean false 显示投屏按钮。Android 在同层渲染下生效,支持 DLNA 协议;iOS 支持 AirPlay 和 DLNA 协议 3.0.31
picture-in-picture-mode string/Array 设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"]) 3.0.31
picture-in-picture-show-progress boolean false 是否在小窗模式下显示播放进度 3.0.31
enable-auto-rotation boolean false 是否开启手机横屏时自动全屏,当系统设置开启自动旋转时生效 2.11.2
show-screen-lock-button boolean false 是否显示锁屏按钮,仅在全屏时显示,锁屏后控制栏的操作 2.11.2
show-snapshot-button boolean false 是否显示截屏按钮,仅在全屏时显示 2.11.2
show-background-playback-button boolean false 是否展示后台音频播放按钮 2.11.2
background-poster string 进入后台音频播放后的通知栏图标 2.11.2(仅 Android 支持)
bindplay eventhandle 当开始/继续播放时触发 play 事件 1.0.0
bindpause eventhandle 当暂停播放时触发 pause 事件 1.0.0
bindended eventhandle 当播放到末尾时触发 ended 事件 1.0.0
bindtimeupdate eventhandle 播放进度变化时触发,event.detail = { currentTime, duration } 。 1.0.0
bindfullscreenchange eventhandle 视频进入和退出全屏时触发,event.detail = { fullScreen, direction },direction 有效值为 vertical 或 horizontal 1.0.0
bindwaiting eventhandle 视频出现缓冲时触发 2.11.2
binderror eventhandle 视频播放出错时触发 2.11.2
bindprogress eventhandle 加载进度变化时触发,只支持一段加载。event.detail = { buffered },百分比 2.11.2
bindloadedmetadata eventhandle 视频元数据加载完成时触发。event.detail = { width, height, duration } 2.11.2
bindcontrolstoggle eventhandle 切换 controls 显示隐藏时触发。event.detail = { show } 2.11.2
bindseekcomplete eventhandler seek 完成时触发 2.11.2
bindenterpictureinpicture eventhandler 播放器进入小窗 未支持
bindleavepictureinpicture eventhandler 播放器退出小窗 未支持

注:

  • 2.11.2 基础库需搭配 SDK 2.34.1 版本使用
  • IDE 部分属性不支持设置,主要涉及全屏、手势、画中画模式等属性,建议用实机查看

# native-view

原生 view 容器

属性 类型 默认值 必填 说明 最低版本
type string camera 原生容器类型,设置只会不可改变
options string {} 传递给原生组件的自定义参数,使用 json 数据 string 格式化结果
bindontask eventhandle 接收原生组件发送事件

示例代码

<native-view
  type="{{type}}"
  options="{{options}}"
  bindready="bindonready"
></native-view>

注:如需全局监听 native-view 事件,参考 onCustomEvent API

# camera

属性 类型 默认值 必填 说明 最低版本
mode string normal 应用模式,只在初始化时有效,不能动态变更 2.11.4
resolution string medium 分辨率,不支持动态修改 2.11.4
device-position string back 摄像头朝向 2.11.4
flash string auto 闪光灯,值为 auto, on, off 2.11.4
frame-size string medium 指定期望的相机帧数据尺寸 2.11.4
bindstop eventhandle 摄像头在非正常终止时触发,如退出后台等情况 2.11.4
binderror eventhandle 用户不允许使用摄像头时触发 不支持
bindinitdone eventhandle 相机初始化完成时触发,e.detail = {maxZoom} 2.11.4
bindscancode eventhandle 在扫码识别成功时触发,仅在 mode="scanCode" 时生效 2.11.4