直播过程控制

本章节介绍互动直播过程中网易云提供的各种控制功能。包括互动直播控制通用控制

互动直播控制包括改变自己在会议中的角色(互动者/观众)、互动直播过程中切换推流地址

通用控制包括是否接收某用户的音频或视频数据、设置扬声器等

互动直播控制

改变自己在会议中的角色

改变自己在会议中的角色

@protocol NIMNetCallManager <NSObject>
/**
 *  改变自己在会议中的角色
 *
 *  @param actor 是否为发言者角色, 发言者发送音视频数据, 非发言者不发送音视频数据
 *
 *  @return 设置是否成功
 */
- (BOOL)setMeetingRole:(BOOL)actor;
@end
参数 类型 说明
actor BOOL 是否为发言者角色, 发言者发送音视频数据, 非发言者不发送音视频数据
//切换为发言者
[[NIMAVChatSDK sharedSDK].netCallManager setMeetingRole:YES];

切换通话模式

切换通话模式,用于在语音模式和视频模式之间切换。如果需要对方接受才能切换,请使用 control:typeonConrtol:from:type 进行协商,达成一致后再调用该接口进行切换。

@protocol NIMNetCallManager <NSObject>
/**
 *  切换网络通话类型
 *
 *  @param type 通话类型
 *
 *  @discussion 切换通话类型会丢失这些设置: 静音模式, 扬声器模式, 摄像头关闭, 切换摄像头
 */
- (void)switchType:(NIMNetCallMediaType)type;
@end
参数 类型 说明
type NIMNetCallMediaType 通话类型
//切换为视频模式
[[NIMAVChatSDK sharedSDK].netCallManager switchType:NIMNetCallMediaTypeVideo];

互动直播过程中切换推流地址

互动直播过程中切换推流地址

@protocol NIMNetCallManager <NSObject>
/**
 *  切换互动直播推流地址
 *
 *  @param url 推流地址
 *
 *  @return 是否设置成功
 */
- (BOOL)switchBypassStreamingUrl:(NSString *)url;
@end
参数 类型 说明
url NSString 推流地址
//切换推流
[[NIMAVChatSDK sharedSDK].netCallManager switchBypassStreamingUrl:url];

互动直播设置主画面

在互动直播下,动态切换布局,设置用户为主画面,只有互动直播主播可以设置

@protocol NIMNetCallManager <NSObject>
/**
 *  互动直播设置主画面
 *
 *  @param uid 被设置的用户id
 *
 *  @param completion 完成回调 如果设置成功 error 为 nil
 *
 *  @discussion 在互动直播下,动态切换布局,设置用户为主画面,只有互动直播主播可以设置
 */
- (void)setAsMainArea:(NSString *)uid completion:(void(^)(NSError * __nullable error))completion;
@end
参数 类型 说明
uid NSString 被设置的用户id
completion void(^)(NSError * __nullable error) 完成回调 如果设置成功 error 为 nil
//设置主画面
[[NIMAVChatSDK sharedSDK].netCallManager setAsMainArea:uid completion:^(NSError * _Nonnull error) {
    if (!error) {
        [self.view makeToast:@"设置主画面成功" duration:2.0 position:CSToastPositionBottom];
    }
    else
    {
        [self.view makeToast:[NSString stringWithFormat:@"设置主画面失败 Error %@",error] duration:2.0 position:CSToastPositionBottom];
    }
}];

通用控制

指定某用户设置是否对其静音

指定某用户设置是否对其静音

@protocol NIMNetCallManager <NSObject>
/**
 *  指定某用户设置是否对其静音
 *
 *  @param mute 是否静音, 静音后将听不到该用户的声音
 *  @param uid  用户 uid
 *
 *  @return 是否设置成功. 如果用户尚未加入, 则无法设置
 */
- (BOOL)setAudioMute:(BOOL)mute forUser:(NSString *)uid;
@end
参数 类型 说明
mute BOOL 是否静音, 静音后将听不到该用户的声音
uid NSString 用户uid
//指定用户设置对其静音
[[NIMAVChatSDK sharedSDK].netCallManager setAudioMute:YES forUser:self.uid];

指定所有远端用户是否对其静音

指定所有远端用户是否对其静音

@protocol NIMNetCallManager <NSObject>
/**
 指定所有远端用户是否对其静音

 @param mute 是否静音, 静音后将听不到所有用户的声音
 @return 是否设置成功.
 */
- (BOOL)setAllUserAudioMute:(BOOL)mute;
@end
参数 类型 说明
mute BOOL 是否静音, 静音后将听不到所有用户的声音
//指定所有远端用户是否对其静音
[[NIMAVChatSDK sharedSDK].netCallManager setAllUserAudioMute:YES];

指定某用户设置是否接收其视频

指定某用户设置是否接收其视频

@protocol NIMNetCallManager <NSObject>
/**
 *  指定某用户设置是否接收其视频
 *
 *  @param mute 是否拒绝视频, 拒绝后将没有该用户视频数据回调
 *  @param uid  用户uid
 *
 *  @return 是否设置成功. 如果用户尚未加入, 则无法设置
 */
- (BOOL)setVideoMute:(BOOL)mute forUser:(NSString *)uid;
@end
参数 类型 说明
mute BOOL 是否拒绝视频, 拒绝后将没有该用户视频数据回调
uid NSString 用户uid
//指定用户不接受其视频
[[NIMAVChatSDK sharedSDK].netCallManager setVideoMute:YES forUser:self.uid];

设置静音

设置静音

@protocol NIMNetCallManager <NSObject>
/**
 *  设置网络通话麦克风静音
 *
 *  @param mute 是否开启麦克风静音
 *
 *  @return 开启麦克风静音是否成功
 *
 *  @discussion 该设置不影响伴音发送, 切换网络通话类型将丢失该设置
 */
- (BOOL)setMute:(BOOL)mute;
@end
参数 类型 说明
mute BOOL 是否开启麦克风静音
//开启静音
 [[NIMAVChatSDK sharedSDK].netCallManager setMute:YES];

设置扬声器

设置扬声器

@protocol NIMNetCallManager <NSObject>
/**
 *  设置网络通话扬声器模式
 *
 *  @param useSpeaker 是否开启扬声器
 *
 *  @return 开启扬声器是否成功
 *
 *  @discussion 切换网络通话类型将丢失该设置
 */
- (BOOL)setSpeaker:(BOOL)useSpeaker;
@end
参数 类型 说明
useSpeaker BOOL 是否开启扬声器
//开启扬声器 
[[NIMAVChatSDK sharedSDK].netCallManager setSpeaker:YES];