观众端 ( 最近更新时间:2020-04-28 19:00:00 )

# 观看直播
# 功能说明

观众用户通过由 APPServer 获取的直播地址和直播类型去订阅直播间资源。block 返回的 inputStream 如果是视频类型,创建一个远端视频 View 添加到流的渲染中即可显示。

示例代码

[[RongRTCEngine sharedEngine] subscribeLiveAVStream:@"从APPServer查询回来的liveUrl" liveType:RongRTCLiveTypeAudioVideo handler:^(RongRTCCode desc, RongRTCLiveAVInputStream * _Nullable inputStream) {
    if (inputStream.streamType == RTCMediaTypeVideo) {
        RongRTCRemoteVideoView *view = [[RongRTCRemoteVideoView alloc] initWithFrame:self.localView.bounds];
        view.fillMode = RCVideoFillModeAspect;
        [inputStream setVideoRender:view];
        [self.View addSubview:view];
    }
}];

已复制
1
2
3
4
5
6
7
8
9
# 取消观看
# 功能说明

观众离开房间时调用 RongRTCEngine 中的 unsubscribeLiveAVStream:completion:,只需要取消订阅主播的音视频资源即可,不需要调用 leaveRoom:completion:

示例代码

[[RongRTCEngine sharedEngine] unsubscribeLiveAVStream:nil completion:^(BOOL isSuccess, RongRTCCode code) {}];
已复制
1
# 观众上麦
# 功能说明

主播端需要与观众连麦操作时,应先通过自己的 APPServer 获取当前聊天室内所有用户的列表,获取指定上麦用户的 ID,并构建一条连麦的自定义消息,调用 RongIMClientsendMessage 接口将自定义消息发送给指定上麦的观众用户。

指定上麦的观众用户收到连麦的自定义消息后,应先调用 RongRTCEngineunsubscribeLiveAVStream 接口取消观看直播。

取消观看直播后,调用 RongRTCEnginejoinRoom:config:completion: 方法加入到直播房间升级为主播,此操作与主播加入房间操作相同。

加入房间升级为主播后,调用 RongRTCRoompublishDefaultLiveAVStream** 接口发布音视频资源,此操作与主播发布资源操作相同。

如果需要观看其他主播端音视频资源流,调用 RongRTCRoomsubscribeAVStream:tinyStreams:completion: 方法来订阅观看。

示例代码

[[RongRTCEngine sharedEngine] unsubscribeLiveAVStream:nil completion:^(BOOL isSuccess, RongRTCCode code) {
		 // 上麦
	RongRTCRoomConfig *config = [[RongRTCRoomConfig alloc] init];
	config.roomType = RongRTCRoomTypeLive;
	config.liveType = RongRTCLiveTypeAudio;
	[[RongRTCEngine sharedEngine] joinRoom:@"直播房间号" config:config completion:^(RongRTCRoom * _Nullable room, RongRTCCode code) {
        }];
}];

//如果需要观看其他主播端音视频资源流则订阅其他用户的资源
NSMutableArray *remoteStreams = [NSMutableArray array];
for (RongRTCRemoteUser *user in self.room.remoteUsers) {
    for (RongRTCAVInputStream *stream in user.remoteAVStreams) {
        [remoteStreams addObject:stream];
    }
}
[self.room subscribeAVStream:remoteStreams tinyStreams:nil completion:^(BOOL isSuccess, RongRTCCode desc) {}];
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 观众下麦
# 功能说明

主播端如果想要执行取消连麦操作,先获取指定取消连麦用户的 ID,并构建一条取消连麦的自定义消息,调用 RongIMClientsendMessage 接口将自定义消息发送给对应的用户。对端用户收到取消连麦的自定义消息后,应调用 RongRTCEngineleaveRoom 接口退出直播房间。

如果取消连麦后,用户还需要继续观看直播,则可以调用 RongRTCEnginesubscribeLiveAVStream 接口来观看直播,此操作与上面介绍的观众用户订阅主播音视频流相同。

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助