标准低延迟直播流程
在开始之前,请您再次确认您已经完成了开通音视频服务、导入 SDK 以及初始化。
提示
多人之间想要发起音视频通话,需要加入同一个音视频房间。对于直播需求来讲,资源类型需选择 AudioVideo 或 Audio ,即音视频直播间或纯音频直播间。加入房间的角色也分为主播 LiveBroadcaster 和观众 LiveAudience ,下面就这两种身份,分别进行说明。
主播端
用户加入房间的角色为主播 LiveBroadcaster。
步骤 1.1:设置监听
设置本地事件监听
设置加入房间事件回调
方法
JavaScript
engine.setOnRoomJoinedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| code | Number | 错误码,0 表示成功 |
| message | String | 错误信息 |
示例代码
JavaScript
engine.setOnRoomJoinedListener(({code, message}) => {
if (code === 0) {
// 加入房间成功
console.log('加入房间成功');
} else {
// 加入房间失败
console.log('加入房间失败:', message);
}
});
设置发布资源事件回调
方法
JavaScript
engine.setOnPublishedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| type | RCRTCMediaType | 发布资源的类型 |
| code | Number | 错误码,0 表示成功 |
| message | String | 错误信息 |
示例代码
JavaScript
engine.setOnPublishedListener(({type, code, message}) => {
// type 发布资源的类型 RCRTCMediaType
if (code === 0) {
// 发布成功
console.log('发布成功,类型:', type);
} else {
// 发布失败
console.log('发布失败:', message);
}
});
设置取消发布资源事件回调
方法
JavaScript
engine.setOnUnpublishedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| type | RCRTCMediaType | 取消发布资源的类型 |
| code | Number | 错误码,0 表示成功 |
| message | String | 错误信息 |
示例代码
JavaScript
engine.setOnUnpublishedListener(({type, code, message}) => {
// type 取消发布资源的类型 RCRTCMediaType
if (code === 0) {
// 取消发布成功
console.log('取消发布成功,类型:', type);
} else {
// 取消发布失败
console.log('取消发布失败:', message);
}
});
设置订阅资源事件回调
方法
JavaScript
engine.setOnSubscribedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| userId | String | 远端用户 ID |
| type | RCRTCMediaType | 订阅资源的类型 |
| code | Number | 错误码,0 表示成功 |
| message | String | 错误信息 |
示例代码
JavaScript
engine.setOnSubscribedListener(({userId, type, code, message}) => {
// userId 远端用户 ID
// type 订阅资源的类型 RCRTCMediaType
if (code === 0) {
// 订阅成功
console.log('订阅成功,用户:', userId, '类型:', type);
} else {
// 订阅失败
console.log('订阅失败:', message);
}
});
设置取消订阅资源事件回调
方法
JavaScript
engine.setOnUnsubscribedListener();
回调参数
| 参数 | 类型 | 说明 |
|---|---|---|
| userId | String | 远端用户 ID |
| type | RCRTCMediaType | 取消订阅资源的类型 |
| code | Number | 错误码,0 表示成功 |
| message | String | 错误信息 |
示例代码
JavaScript
engine.setOnUnsubscribedListener(({userId, type, code, message}) => {
// userId 远端用户 ID
// type 取消订阅资源的类型 RCRTCMediaType
if (code === 0) {
// 取消订阅成功
console.log('取消订阅成功,用户:', userId, '类型:', type);
} else {
// 取消订阅失败
console.log('取消订阅失败:', message);
}
});