title: LivePlayer
sidebar_label: LivePlayer
实时音视频播放。相关api:Taro.createLivePlayerContext
需要先通过类目审核,再在小程序管理后台,“设置”-“接口设置”中自助开通该组件权限。
参考文档
类型
ComponentType<LivePlayerProps>
示例代码
class App extends Components {
render () {
return (
<LivePlayer src='url' mode='live' autoplay />
)
}
}
LivePlayerProps
参数 |
类型 |
默认值 |
必填 |
说明 |
src |
string |
|
否 |
音视频地址。目前仅支持 flv, rtmp 格式 |
mode |
"live" | "RTC" |
"live" |
否 |
模式 |
autoplay |
boolean |
false |
否 |
自动播放 |
muted |
boolean |
false |
否 |
是否静音 |
orientation |
"vertical" | "horizontal" |
"vertical" |
否 |
画面方向 |
objectFit |
"contain" | "fillCrop" |
"contain" |
否 |
填充模式 |
backgroundMute |
boolean |
false |
否 |
进入后台时是否静音(已废弃,默认退台静音) 不推荐使用 |
minCache |
number |
1 |
否 |
进最小缓冲区,单位s |
maxCache |
number |
3 |
否 |
进最小缓冲区,单位s |
soundMode |
"speaker" | "ear" |
"speaker" |
否 |
声音输出方式 |
autoPauseIfNavigate |
boolean |
true |
否 |
当跳转到本小程序的其他页面时,是否自动暂停本页面的实时音视频播放 |
autoPauseIfOpenNavigate |
boolean |
true |
否 |
当跳转到其它微信原生页面时,是否自动暂停本页面的实时音视频播放 |
onStateChange |
BaseEventOrigFunction<onStateChangeEventDetail> |
|
否 |
播放状态变化事件,detail = {{code} } |
onFullScreenChange |
BaseEventOrigFunction<onFullScreenChangeEventDetail> |
|
否 |
全屏变化事件,detail = {{direction, fullScreen} } |
onNetstatus |
BaseEventOrigFunction<onNetStatusEventDetail> |
|
否 |
网络状态通知,detail = {{info} } |
onAudioVolumenotify |
BaseEventOrigFunction<{}> |
|
否 |
播放音量大小通知,detail = {{} } |
API 支持度
API |
微信小程序 |
H5 |
React Native |
LivePlayerProps.src |
✔️ |
|
|
LivePlayerProps.mode |
✔️ |
|
|
LivePlayerProps.autoplay |
✔️ |
|
|
LivePlayerProps.muted |
✔️ |
|
|
LivePlayerProps.orientation |
✔️ |
|
|
LivePlayerProps.objectFit |
✔️ |
|
|
LivePlayerProps.backgroundMute |
✔️ |
|
|
LivePlayerProps.minCache |
✔️ |
|
|
LivePlayerProps.maxCache |
✔️ |
|
|
LivePlayerProps.soundMode |
✔️ |
|
|
LivePlayerProps.autoPauseIfNavigate |
✔️ |
|
|
LivePlayerProps.autoPauseIfOpenNavigate |
✔️ |
|
|
LivePlayerProps.onStateChange |
✔️ |
|
|
LivePlayerProps.onFullScreenChange |
✔️ |
|
|
LivePlayerProps.onNetstatus |
✔️ |
|
|
LivePlayerProps.onAudioVolumenotify |
✔️ |
|
mode
mode 的合法值
参数 |
说明 |
live |
直播 |
RTC |
实时通话,该模式时延更低 |
orientation
orientation 的合法值
参数 |
说明 |
vertical |
竖直 |
horizontal |
水平 |
objectFit
objectFit 的合法值
参数 |
说明 |
contain |
图像长边填满屏幕,短边区域会被填充⿊⾊ |
fillCrop |
图像铺满屏幕,超出显示区域的部分将被截掉 |
soundMode
soundMode 的合法值
onStateChangeEventDetail
onFullScreenChangeEventDetail
参数 |
类型 |
说明 |
direction |
number |
方向 |
fullScreen |
number | boolean |
全屏 |
onNetStatusEventDetail
status
状态码
参数 |
说明 |
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 读/写失败 |
API 支持度
API |
微信小程序 |
H5 |
React Native |
LivePlayer |
✔️ |
|
|