本地用户流
用户进入音视频房间后,想让其他人看见你的画面、听见你的声音,需要发布(Publish)本地资源。想看到别人的画面、听见别人的声音,需要订阅(Subscribe)其他人已发布的资源。
发布
开发者可在 joinRoom
成功后返回的 RCRTCRoom 拿到 RCRTCLocalUser 对象中通过 getLocalUser
获取本地用户对象,然后调用其中的 publishDefaultStreams 来发布本地默认音视频流。这里定义的默认音视频流,是指麦克风采集的音频和摄像头采集的视频;也可以调用 publishStream 或 publishStreams 由开发者指定资源进行发布,比如单独发布音频或视频,亦或发布媒体文件或屏幕共享流。
// 发布默认音视频流,即麦克风、摄像头采集数据
room.getLocalUser().publishDefaultStreams(new IRCRTCResultCallback() {
@Override
public void onSuccess() {
// 发布成功
}
@Override
public void onFailed(RTCErrorCode errorCode) {
// 发布失败
}
});
取消发布
当需要取消发布时,可调用 RCRTCLocalUser 中的 unpublishDefaultStreams 来取消默认发布的音视频流;也可以调用 unpublishStream 或 unpublishStreams 由开发者指定资源进行取消发布。取消发布接口通常跟发布接口配对使用,但如果是用户想要退出房间,则不需要调用取消发布方法,在调用退出房间接口时,SDK 内部会自动进行取消处理。
// 取消发布默认音视频流,即麦克风、摄像头采集数据
room.getLocalUser().unpublishDefaultStreams(new IRCRTCResultCallback() {
@Override
public void onSuccess() {
// 取消发布成功
}
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
// 取消发布失败
}
});