# uni直播

uni直播是DCloud与七牛云合作推出的直播服务,七牛云直播依托云边一体化架构和海量节点资源,构建高效的流媒体服务。通过多维度的节点监控与弹性的节点调度管理,确保高质量服务与成本效益的完美平衡。

live-pusher 组件是uni直播服务中的推流组件,在 Android/iOS 平台使用需要申请绑定包名/Bundle ID(AppID),详情咨询

# live-pusher

实时音视频录制

# 兼容性

Web 微信小程序 Android iOS HarmonyOS
x 4.41 4.81 4.81 x

# 属性

名称 类型 默认值 兼容性 描述
url string(string.VideoURIString) -
推流地址,支持 rtmp 协议
mode string "SD"
SD(标清), HD(高清), FHD(超清), RTC(实时通话)
合法值 兼容性 描述
RTC
-
SD
-
HD
-
FHD
-
QVGA
Quarter VGA
HVGA
Half-size VGA
autopush boolean -
自动推流
muted boolean false
是否静音
enable-camera boolean true
开启摄像头
auto-focus boolean true
自动获取焦点
orientation string "vertical"
画面方向,可选值有 vertical,horizontal
合法值 兼容性 描述
vertical
-
horizontal
-
beauty number 0
美颜,取值范围 0-9(iOS取值范围为1) ,0 表示关闭
aspect string "3:4"
视频宽高比例
min-bitrate number 200
最小码率
max-bitrate number 1000
最大码率
waiting-image string -
进入后台时推流的等待画面
waiting-image-md5 string -
等待画面资源的MD5值
background-mute boolean false
进入后台时是否静音
@statechange (event: UniLivePusherStatechangeEvent) => void -
播放状态变化事件,event.detail = {code, message}
@statechange (event: UniEvent) => void -
播放状态变化事件,detail = {code}
@error (event: UniLivePusherErrorEvent) => void -
错误事件,event.detail = {errCode, errMsg}
@netstatus (event: UniLivePusherNetstatusEvent) => void -
网络状态通知,event.detail = {videoBitrate, audioBitrate, videoFPS, videoGOP, netSpeed, videoWidth, videoHeight}
@netstatus (event: UniEvent) => void -
网络状态通知,detail = {info}
enableVideoCustomRender boolean -
(boolean)
自定义渲染,允许开发者自行处理所采集的视频帧,详见LivePusherContext
whiteness number 0
(number)
美白,取值范围 0-9(iOS取值范围为1) ,0 表示关闭
audio-quality string "high"
(string)
高音质(48KHz)或低音质(16KHz),值为high, low
waiting-image-hash string -
(string)
等待画面资源的MD5值
zoom boolean -
(boolean)
调整焦距
zoom number 1
调整焦距
device-position string "front"
(string)
前置或后置,值为front, back
mirror boolean -
(boolean)
设置推流画面是否镜像,产生的效果在 live-player 反应到
remote-mirror boolean false
(boolean)
同 mirror 属性,后续 mirror 将废弃
local-mirror string "auto"
(string)
控制本地预览画面是否镜像
合法值 兼容性 描述
auto
前置摄像头镜像,后置摄像头不镜像
enable
前后置摄像头均镜像
disable
前后置摄像头均不镜像
audio-reverb-type number -
(number)
音频混响类型
合法值 兼容性 描述
0
关闭
1
KTV
2
小房间
3
大会堂
4
低沉
5
洪亮
6
金属声
7
磁性
enable-mic boolean true
(boolean)
开启或关闭麦克风
enable-agc boolean -
(boolean)
是否开启音频自动增益
enable-ans boolean -
(boolean)
是否开启音频噪声抑制
audio-volume-type string -
(string)
音量类型
合法值 兼容性 描述
auto
自动
media
媒体音量
voicecall
通话音量
video-width number -
(number)
上推的视频流的分辨率宽度
video-height number -
(number)
上推的视频流的分辨率高度
beauty-style string -
(string)
设置美颜类型
合法值 兼容性 描述
smooth
光滑美颜
nature
自然美颜
filter string -
(string)
设置色彩滤镜
合法值 兼容性 描述
standard
标准
pink
粉嫩
nostalgia
怀旧
blues
蓝调
romantic
浪漫
cool
清凉
fresher
清新
solor
日系
aestheticism
唯美
whitening
美白
cerisered
樱红
picture-in-picture-mode string/Array -
(string/Array)
设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"]
合法值 兼容性 描述
[]
取消小窗
push
路由 push 时触发小窗
pop
路由 pop 时触发小窗
voice-changer-type number -
(number)
0:关闭变声;1:熊孩子;2:萝莉;3:大叔;4:重金属;6:外国人;7:困兽;8:死肥仔;9:强电流;10:重机械;11:空灵
custom-effect boolean -
(boolean)
是否启动自定义特效,设定后不能更改
skin-whiteness number -
(number)
自定义特效美白效果,取值 0~1。需要开启 custom-effect
skin-smoothness number -
(number)
自定义特效磨皮效果,取值 0~1。需要开启 custom-effect
face-thinness number -
(number)
自定义特效瘦脸效果,取值 0~1。需要开启 custom-effect
eye-bigness number -
(number)
自定义特效大眼效果,取值 0~1。需要开启 custom-effect
fps number -
(number)
帧率,有效值为 1~30
@bgmstart eventhandle -
(eventhandle)
背景音开始播放时触发
@bgmprogress eventhandle -
(eventhandle)
背景音进度变化时触发,detail = {progress, duration}
@bgmcomplete eventhandle -
(eventhandle)
背景音播放完成时触发
@audiovolumenotify eventhandle -
(eventhandle)
返回麦克风采集的音量大小
@enterpictureinpicture eventhandler -
(eventhandler)
进入小窗
@leavepictureinpicture eventhandler -
(eventhandler)
退出小窗

# 事件

# UniLivePusherStatechangeEvent

推流状态变化事件

# UniLivePusherStatechangeEvent 的属性值
名称 类型 必填 默认值 兼容性 描述
detail UniLivePusherStatechangeEventDetail - - -
名称 类型 必备 默认值 兼容性 描述
code number -
状态码
合法值 兼容性 描述
1001 - 连接中
1002 - 已连接
3004 - 连接断开
message string -
状态信息
bubbles boolean - - -
cancelable boolean - - -
type string - - -
target UniElement - - -
currentTarget UniElement - - -
timeStamp Long - - -
# UniLivePusherStatechangeEvent 的方法
名称 类型 必填 默认值 兼容性 描述
stopPropagation () => void - - -
preventDefault () => void - - -

# UniLivePusherErrorEvent

错误事件

# UniLivePusherErrorEvent 的属性值
名称 类型 必填 默认值 兼容性 描述
detail UniLivePusherError - - -
名称 类型 必备 默认值 兼容性 描述
errCode number -
错误码
合法值 兼容性 描述
3005 - 网络问题
3006 - 推流地址错误
3007 - 推流地址未授权
3008 - 包未授权
4001 - 音频录制错误(android)
4002 - 打开摄像头错误(android)
4003 - 没有 nv21 预览格式(android)
4004 - 开启视频编码错误(android)
4005 - 视频编码错误(android)
4006 - 开启音频编码错误(android)
4007 - 音频编码错误(android)
5001 - 编码器编码错误(iOS)
5002 - TLS 连接失败(iOS)
5003 - 没有 SSL 或者 TLS(iOS)
5004 - DNS 解析失败(iOS)
5005 - rtmp 发布失败(iOS)
-1 - -
errMsg string -
错误信息
bubbles boolean - - -
cancelable boolean - - -
type string - - -
target UniElement - - -
currentTarget UniElement - - -
timeStamp Long - - -
# UniLivePusherErrorEvent 的方法
名称 类型 必填 默认值 兼容性 描述
stopPropagation () => void - - -
preventDefault () => void - - -

# UniLivePusherNetstatusEvent

推流网络状态事件

# UniLivePusherNetstatusEvent 的属性值
名称 类型 必填 默认值 兼容性 描述
detail UniLivePusherNetstatusEventDetail - - -
名称 类型 必备 默认值 兼容性 描述
videoBitrate number -
当前视频编/码器输出的比特率,单位 kbps
audioBitrate number -
当前音频编/码器输出的比特率,单位 kbps
videoFPS number -
当前视频帧率
videoGOP number -
当前视频 GOP,也就是每两个关键帧(I帧)间隔时长,单位 s
netSpeed number -
当前的发送/接收速度
videoWidth number -
视频画面的宽度
videoHeight number -
视频画面的高度
bubbles boolean - - -
cancelable boolean - - -
type string - - -
target UniElement - - -
currentTarget UniElement - - -
timeStamp Long - - -
# UniLivePusherNetstatusEvent 的方法
名称 类型 必填 默认值 兼容性 描述
stopPropagation () => void - - -
preventDefault () => void - - -

# 音视频协议

  • 支持 rtmp 协议格式。

# 上下文对象API

uni.createLivePusherContext()

# 参见