发布和订阅
本部分介绍能够实现向房间发布媒体流或取消发布,订阅媒体流或停止订阅等操作。
发布本地媒体流
调用 publishWithAudioEnabled:videoEnabled:
向房间发布本地媒体流。如果允许发布音频流,那么在发布成功时 SDK 内部便会自动开启音频采集,同时在停止发布/离开房间时关闭音频采集。
其中,audioEnabled
决定是否允许发布音频流,videoEnabled
决定是否发布视频流,本地媒体流的 session
创建参考媒体流链接。
- (void)publishWithAudioEnabled:(BOOL)audioEnabled videoEnabled:(BOOL)videoEnabled;
如果允许发布视频流,发布成功后需要开启摄像头采集(当然,在发布之前开启也可以),这样远端用户才能看到本地的摄像头画面,如何开启摄像头采集请查阅媒体流采集
纯音频模式
如果只需要发布纯音频,请务必在发布时将 videoEnabled
设成 NO
,以避免产生过多的视频订阅费用。
远端用户回调
本地媒体流发布成功后,会触发远端用户代理发布成功的回调。
- (void)RTCSession:(QNRTCSession *)session didPublishOfRemoteUserId:(NSString *)userId;
取消发布本地媒体流
调用 unpublish
取消发布本地媒体流。
- (void)unpublish;
本地媒体流取消发布后,会触发远端用户代理取消发布的回调。
- (void)RTCSession:(QNRTCSession *)session didUnpublishOfRemoteUserId:(NSString *)userId;
订阅远端用户媒体流
在远端用户发布流媒体成功后,本地用户调用 subscribe:
订阅该远端用户(userId)发布的媒体流。
- (void)subscribe:(NSString *)userId;
本地订阅远端用户媒体流成功后,会触发本地代理订阅成功的回调。
持续订阅远端用户媒体流
如果需要持续地订阅某一远端用户(userId)发布的媒体流,那么可以使用如下接口。如果 continuous 为 YES,那么当 userId 发布流时,SDK 会自动订阅该流。一直持续到取消订阅或者 userId 取消发布流为止。 另外,本地用户退出房间亦会清空持续订阅的用户列表。
- (void)subscribe:(NSString *)userId continuous:(BOOL)continuous;
取消订阅远端用户媒体流
本地用户调用 unsubscribe
取消订阅该远端用户(userId)的媒体流。
- (void)unsubscribe:(NSString *)userId;