Blive uni-app SDK 基于 BRTC uni-app SDK 基础上,补充了若干针对互动直播场景下的 API 及事件回调。BRTC uni-app SDK 绝大部分 API 和事件回调都被保留。如果 Blive uni-app SDK 的房间类型被设置为纯 RTC 模式,或者以主播角色进入房间,那么基本上可以认为 Blive 拥有全部 BRTC 的功能。
因此,本页仅列出了与 BRTC uni-app SDK 有差异的部分,其他接口和回调,请参考 BRTC uni-app SDK。
enablePureRtcMode
设置房间为纯 RTC 模式。注意:必须在进房前调用此方法,进房后调用无效。
enablePureRtcMode(enable)
参数
enterRoom
加入房间
enterRoom(params)
{ "roomId": "房间ID", "userId": "用户ID", "sdkAppId": "SDKAppID", "userSig": "用户进房鉴权码", "roleType": 0, //0: 观众,1: 主播 "userNumber": "用户识别码" }
详情
userNumber
userId
roleType
switchRole
切换角色
switchRole(role)
onSwithRole
startMixTranscode
开始合流转码
startMixTranscode(jsonMixStreamParams)
{ "mixStreamId": "", //合流id "customData": "", //用户自定义信息 "liveLayoutMode": 1, //1: Default, 2:Gallery画廊布局, 3:Speech演讲布局, 4:Floating悬浮球布局 "forceMix": true, //单路流时是否强制转码 "layoutCanvasBean": { "width": 640, //合流宽 "height": 480, //合流高 "isPortrait": true, //是否竖屏 "color": "#ff0000", //背景颜色 "fitMode": 0, //0:Fit, 1:AspectFill裁剪, 2:Fill拉伸填充 "layoutVideoBean": { "useQp": true, //是否使用Qp "codec": "h264", //编码格式 "bitrate": 1000, //码率 "fps": 15, //帧率 "gop": 2 //相邻关键帧间隔 } }, "streamCellModel": [ { "cellName": "", //合流单元格名称 "x": 0, //位置:X方向 "y": 0, //位置:Y方向 "width": 640, //宽 "height": 480, //高 "zOrder": 0, //z轴顺序 "fitMode": 0, //同上 "color": "#ff0000", //背景颜色 "streamIdentifier": { "type": "brtc-vloud", //常量 "data": { // 自定义扩展信息 "userId": "", "roomId": "", } } } ] }
stopMixTranscode
停止合流转码
stopMixTranscode(mixStreamId)
onMixStreamRemoved
playMixStream
播放合流
playMixStream(jsonMixStreamInfo)
{ "viewId": "", // 播放视图控件ID,用于显示合流视频画面 "mixStreamId": "", // 合流ID,通过 onMixStreamAdded 回调获取 "videoOn": true, // 当前版本传常量 true "audioOn": true // 当前版本传常量 true }
stopMixStream
停止播放合流
stopMixStream(mixStreamId)
onEnterBliveRoom
Blive 进房回调通知
onEnterBliveRoom(result)
onExitBliveRoom
Blive 离房回调通知
onExitBliveRoom(reason)
onSwitchRole
切换角色的事件回调通知
onSwitchRole(role)
onStartTranscode
主播开始合流的回调
onStartTranscode(mixStreamId)
onStopTranscode
主播结束合流的回调
onStopTranscode(mixStreamId)
onMixStreamAdded
观众收到主播开始合流的事件回调
onMixStreamAdded(jsonMixStreamInfo)
{ "mixStreamId": "合流ID,使用此ID调用 playMixStream 来播放合流", "mixStreamInfo": { "roomId": "", "taskId": "", "customData": "", "pull": false, "index": 0, "timeout": 2, "streamList": [], "streamResolutionList": [ { "cdnList": [ { "flvUrl": "", "httpDnsUrl": [], "m3u8Url": "", "resolution": "", "rtmpUrl": "" } ], "cdnName": "" } ] } }
上面格式中,mixStreamInfo在不同平台可能内容格式略有不同,目前里面的字段暂未对外公布使用,如果您需要利用其中某些属性,请联系我们了解更多细节。
mixStreamInfo
onMixStreamUpdate
观众收到主播更新合流的事件回调
onMixStreamUpdate(jsonMixStreamInfo)
观众收到主播停止推流的事件回调
onMixStreamRemoved(mixStreamId)
onMixedNotification
房间内已存在的合流任务通知
onMixedNotification(jsonMixStreamInfo)
{ "taskId": "合流ID", "customData": "自定义数据", }
通常一个房间内只会有一个主播发起合流任务,但如果以主播角色进房后,房间内已有其他主播发布了合流任务,您会通过 onMixedNotification 回调获得合流ID。这种情况下,您通常有以下几种选择:1、放弃发起新的合流任务2、发起新的合流任务,使用新的合流ID,这样相当于房间内会产生多路合流3、发起新的合流任务,使用 onMixedNotification 回调中的 taskId,这样相当于当再次调用 startMixTranscode 发起合流时,使用新的合流参数覆盖原有合流任务
uni-app
Blive uni-app SDK 基于 BRTC uni-app SDK 基础上,补充了若干针对互动直播场景下的 API 及事件回调。BRTC uni-app SDK 绝大部分 API 和事件回调都被保留。如果 Blive uni-app SDK 的房间类型被设置为纯 RTC 模式,或者以主播角色进入房间,那么基本上可以认为 Blive 拥有全部 BRTC 的功能。
因此,本页仅列出了与 BRTC uni-app SDK 有差异的部分,其他接口和回调,请参考 BRTC uni-app SDK。
接口
房间
音视频合流
回调事件
详细信息
enablePureRtcMode
设置房间为纯 RTC 模式。注意:必须在进房前调用此方法,进房后调用无效。
参数
enterRoom
加入房间
参数
详情
userNumber
是 Blive 新增字段,作用与userId
类似。建议使用随机数转为字符串传入。roleType
在 BRTC 中可选设置,在 Blive 要求必需设置。它将决定进房后的一系列默认行为。switchRole
切换角色
参数
BLiveRoleAudience(0) 观众,不能发布自己的音视频流,只能观看房间中存在的合流。
BLiveRoleAnchor(1) 主播,可以发起音视频推流、触发服务器合流。
详情
onSwithRole
回调通知。startMixTranscode
开始合流转码
参数
详情
stopMixTranscode
停止合流转码
参数
详情
onMixStreamRemoved
回调通知playMixStream
播放合流
参数
stopMixStream
停止播放合流
参数
详情
onEnterBliveRoom
Blive 进房回调通知
参数
onExitBliveRoom
Blive 离房回调通知
参数
onSwitchRole
切换角色的事件回调通知
参数
onStartTranscode
主播开始合流的回调
onStopTranscode
主播结束合流的回调
onMixStreamAdded
观众收到主播开始合流的事件回调
onMixStreamUpdate
观众收到主播更新合流的事件回调
onMixStreamRemoved
观众收到主播停止推流的事件回调
onMixedNotification
房间内已存在的合流任务通知