音视频订阅
目前云信的音视频订阅,支持视频订阅和音频订阅,由于服务器针对音频是ASL转发,所以音频订阅不能精确到会议中某一个用户,只支持音频全订阅;而视频可以针对会议中的某一个用户订阅视频。这期开始支持多流。默认情况下,客户不需要调用任何API即为全订阅和发布。为了兼容老版本,因此有自动订阅和手动订阅的区别,老版本不需要任何操作,由服务器统一自动订阅和发布;新版本可以选择自动订阅,也可以选择手动订阅;由于计费规则的调整,建议新版本的用户还是选择手动订阅的策略。
目前主要接口包含: 1.设置自动发布和自动订阅的接口 2.查询是否自动发布视频接口 3.发布视频接口 4.取消发布视频接口 5.查询是否自动订阅视频接口 6.查询是否自动订阅音频接口 7.订阅视频接口 8.取消订阅视频接口 9.订阅音频接口 10.取消订阅音频接口 11.设置本地视频多流模式(Beta)
注意事项1:自动模式和手动模式是互斥的,自动模式下,所有的手动接口操作都会返回错误。
注意事项2:点对点模式都是SDK自动订阅和发布的,不允许用户操作,因此所有的手动接口操作都会返回错误。
注意事项3:音视频模式切换、用户角色切换时,在自动模式下,用户不需要关心这些;但是在手动模式下,用户需要自行调用对应的接口。
NIMNetCallSubscribeError参数说明
NIMNetCallSubscribeError参数说明
参数 | 类型 | 说明 |
---|---|---|
NIMNetCallSubscribeErrorNO | NIMNetCallSubscribeError | 成功 |
NIMNetCallSubscribeErrorFailed | NIMNetCallSubscribeError | 失败 |
NIMNetCallSubscribeErrorVideoMute | NIMNetCallSubscribeError | 视频mute,不能进行发布or取消发布视频操作 |
NIMNetCallSubscribeErrorAudience | NIMNetCallSubscribeError | 观众模式,不能进行发布or取消发布视频操作 |
NIMNetCallSubscribeErrorAudioMode | NIMNetCallSubscribeError | 音频模式,不能进行发布or取消发布视频操作 |
NIMNetCallSubscribeErrorOperationing | NIMNetCallSubscribeError | 重复操作/正在进行中 |
NIMNetCallSubscribeErrorPatternMutex | NIMNetCallSubscribeError | 模式互斥,自动模式下不能进行手动操作 |
NIMNetCallSubscribeErrorNotMeeting | NIMNetCallSubscribeError | 非会议模式不能进行任何操作 |
NIMNetCallSubscribeErrorVideoType | NIMNetCallSubscribeError | 视频类型错误,需要取消之前的订阅 |
NIMNetCallSimulcastModel参数说明
NIMNetCallSimulcastModel多流模式参数说明
参数 | 类型 | 说明 |
---|---|---|
NIMNetCallSimulcastModelSingleStream | NIMNetCallSimulcastModel | 单流 |
NIMNetCallSimulcastModelDualStream | NIMNetCallSimulcastModel | 双流 |
NIMNetCallSimulcastProfile参数说明
NIMNetCallSimulcastProfile流类型参数说明
参数 | 类型 | 说明 |
---|---|---|
NIMNetCallSimulcastProfileHigh | NIMNetCallSimulcastProfile | 大流 |
NIMNetCallSimulcastProfileLow | NIMNetCallSimulcastProfile | 小流 |
音视频订阅接口
设置本地视频多流模式
- API介绍
设置本地视频多流模式。
- API原型
/**
设置本地视频多流模式
@return 返回为0时说明接口执行成功,但是否订阅成功还得看回调结果。返回为非0时,说明接口执行异常
*/
-(NIMNetCallSubscribeError)setLocalVideoSimulcastModel:(NIMNetCallSimulcastModel)mode;
- 参数说明
参数 | 类型 | 说明 |
---|---|---|
mode | NIMNetCallSimulcastModel | 多流模式 |
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager setLocalVideoSimulcastModel:NIMNetCallSimulcastModelSingleStream];
设置自动发布和自动订阅
- API介绍
设置自动发布和自动订阅。
- API原型
/**
设置视频是否自动发布,是否自动订阅;音频是否自动订阅,音频的发布是全发布的。
默认是自动发布和订阅,必须在joinChannel之前设置
@param autoPub 是否自动发布
@param autoSub 是否自动订阅
@return 返回操作类型
*/
-(NIMNetCallSubscribeError)setAutoPublish:(BOOL)autoPub autoSub:(BOOL)autoSub;
- 参数说明
参数 | 类型 | 说明 |
---|---|---|
autoPub | BOOL | 是否自动发布 |
autoSub | BOOL | 是否自动订阅 |
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager setAutoPublish:YES autoSub:YES];
查询是否自动发布视频
- API介绍
查询是否自动发布视频。
- API原型
/**
查询视频当前是否为自动发布模式
@return 是否为自动发布模式
*/
-(BOOL)isAutoPublishVideo;
- 参数说明
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager isAutoPublishVideo];
设置弱网条件下音视频流回退策略
- API介绍
设置弱网条件下音视频流回退策略 必须在启动音视频之前设置。
- API原型
/**
设置弱网条件下音视频流回退策略 必须在启动音视频之前设置
@param option 回退策略
@return 返回操作类型
*/
- (NIMNetCallSubscribeError)setPubishFallBack:(NIMNetCallSubscribeServerFbType)option;
- 参数说明
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager setPubishFallBack:NIMNetCallSubscribeServerFbTypeAudioOnly];
发布视频流
- API介绍
发布视频流。
- API原型
/**
发布视频流
@return 返回操作类型
*/
-(NIMNetCallSubscribeError)publishVideo;
参数说明
示例
[[NIMAVChatSDK sharedSDK].netCallManager publishVideo];
- API 回调
/**
本端发布视频流回调
@param errCode 0为发布成功,非0为失败
*/
-(void)onPublishVideoResult:(int)errCode;
取消发布视频流
- API介绍
取消发布视频流。
- API原型
/**
取消发布视频流
@return 返回操作类型
*/
-(NIMNetCallSubscribeError)unpublishVideo;
- 参数说明
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager unpublishVideo];
- API 回调
/**
本端取消发布视频流回调
@param errCode 0为取消发布成功,非0为失败
*/
-(void)onUnPublishVideoResult:(int)errCode;
查询视频当前是否为自动订阅模式
- API介绍
查询视频当前是否为自动订阅模式。
- API原型
/**
查询视频当前是否为自动订阅模式
@return 否为自动订阅模式
*/
-(BOOL)isAutoSubscribeVideo;
参数说明
示例
[[NIMAVChatSDK sharedSDK].netCallManager isAutoSubscribeVideo];
查询音频当前是否为自动订阅模式
- API介绍
查询音频当前是否为自动订阅模式。
- API原型
/**
查询音频当前是否为自动订阅模式
@return 否为自动订阅模式
*/
-(BOOL)isAutoSubscribeAudio;
参数说明
示例
[[NIMAVChatSDK sharedSDK].netCallManager isAutoSubscribeAudio];
订阅远端用户uid的视频流
- API介绍
订阅远端用户uid的视频流。
- API原型
/**
订阅远端用户uid的视频流
@param uid 用户uid
@return 返回为0时说明接口执行成功,但是否订阅成功还得看回调结果。返回为非0时,说明接口执行异常中断,订阅失败
*/
-(NIMNetCallSubscribeError)subscribeVideo:(NSString *)uid profile:(NIMNetCallSimulcastProfile)profile;
- 参数说明
参数 | 类型 | 说明 |
---|---|---|
uid | NSString | 用户uid |
profile | NIMNetCallSimulcastProfile | 流类型 |
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager subscribeVideo:uid];
- API 回调
/**
订阅视频流回调
@param errCode 0为订阅成功,非0为失败
@param uid 用户id
*/
-(void)onSubscribeVideoResult:(int)errCode uid:(NSString *)uid profile:(NIMNetCallSimulcastProfile)profile;
取消订阅远端用户uid的视频流
- API介绍
取消订阅远端用户uid的视频流。
- API原型
/**
取消订阅远端用户uid的视频流
@param uid 用户uid
@return 返回为0时说明接口执行成功,但是否订阅成功还得看回调结果。返回为非0时,说明接口执行异常中断,订阅失败
*/
-(NIMNetCallSubscribeError)unsubscribeVideo:(NSString *)uid;
- 参数说明
参数 | 类型 | 说明 |
---|---|---|
uid | NSString | 用户uid |
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager unsubscribeVideo:uid];
- API 回调
/**
取消订阅视频流回调
@param errCode 0为取消订阅成功,非0为失败
@param uid 用户id
*/
-(void)onUnSubscribeVideoResult:(int)errCode uid:(NSString *)uid profile:(NIMNetCallSimulcastProfile)profile;
订阅远端音频流
- API介绍
订阅远端音频流。
- API原型
/**
订阅远端音频流
@return 返回为0时说明接口执行成功,但是否订阅成功还得看回调结果。返回为非0时,说明接口执行异常中断,订阅失败
*/
-(NIMNetCallSubscribeError)subscribeAudio;
参数说明
示例
[[NIMAVChatSDK sharedSDK].netCallManager subscribeAudio];
- API 回调
/**
订阅音频回调
@param errCode 0为订阅成功,非0为失败
*/
-(void)onSubscribeAudioResult:(int)errCode;
取消订阅远端音频流
- API介绍
取消订阅远端音频流。
- API原型
/**
取消订阅远端音频流
@return 返回为0时说明接口执行成功,但是否订阅成功还得看回调结果。返回为非0时,说明接口执行异常中断,订阅失败
*/
-(NIMNetCallSubscribeError)unsubscribeAudio;
- 参数说明
- 示例
[[NIMAVChatSDK sharedSDK].netCallManager unsubscribeAudio];
- API 回调
/**
取消订阅音频回调
@param errCode 0为取消订阅成功,非0为失败
*/
-(void)onUnSubscribeAudioResult:(int)errCode;
远端发布视频流回调
- API 回调
/**
远端发布视频流回调
@param uid 用户id
*/
-(void)onRemotePublishVideoResult:(NSString *)uid profileList:(NSArray *)profileList;
远端取消发布视频流回调
- API 回调
/**
远端取消发布视频流回调
@param uid 用户id
*/
-(void)onRemoteUnPublishVideoResult:(NSString *)uid;