合流配置
本部分介绍合流时客户端的布局设置,关于合流的参数配置,可以查阅服务端合流。
创建合流任务
创建合流任务不是必需的。合流时,如果未提前创建合流任务,那么,会使用对应的应用的合流参数创建一个默认的合流任务。关于如何设置应用的合流参数,可参考服务端合流。如果需要针对单次合流使用自定义的合流参数,那么可以通过如下接口创建合流任务:
- (void)createMergeStreamJobWithConfiguration:(QNMergeStreamConfiguration *)configuration;
创建合流任务是异步操作,成功后会通过如下回调通知。
- (void)RTCEngine:(QNRTCEngine *)engine didCreateMergeStreamWithJobId:(NSString *)jobId;
关于 QNMergeStreamConfiguration
属性的具体含义,可参考 QNMergeStreamConfiguration。
将 Track 加入合流
通过如下接口:
- (void)setMergeStreamLayouts:(NSArray <QNMergeStreamLayout *> *)layouts
jobId:(NSString *)jobId;
可将一组 Track 加入合流。QNMergeStreamLayout
中的 trackId
属性用于指定需要加入合流的 Track,frame
指定在合流画面中的大小和位置(仅限视频流),zIndex
用于指定在合流画面的层次(仅限视频流)。如果有手动创建合流任务,jobId
则传入所创建的合流任务的 id,否则,传入 nil
即可。
如果需要更新 Track 的 layout
配置,再次调用该接口即可。
将 Track 从合流中移除
将 Track 加入合流后,如果需要移除,只需要调用如下接口,并在 QNMergeStreamLayout
中传入对应的 trackId
即可,frame
及 zIndex
参数可忽略。jobId
含义同上。
- (void)removeMergeStreamLayouts:(NSArray <QNMergeStreamLayout *> *)layouts
jobId:(NSString *)jobId;
停止合流
通过调用如下接口:
- (void)stopMergeStreamWithJobId:(NSString *)jobId;
停止对应 jobId
的合流任务,若 jobId
为 nil
,则停止默认的合流任务。