API
初始化接口
SDK初始化
- (instancetype)initSDKWithAppID:(NSString *)appId tokenStr:(NSString *)tokenStr delegate:(id<BaiduRtcRoomDelegate>)delegate;
初始化SDK。
初始化SDK时调用。设置 AppID、TokenStr 等。
参数
参数 | 类型 | 描述 |
---|---|---|
appId | NSString* | RTC 基础业务单元的唯一标识 |
tokenStr | NSString* | RTC Server 端鉴权使用的字符串 |
delegate | id<BaiduRtcRoomDelegate> | 遵循 BaiduRtcRoomDelegate 协议的对象 |
返回
返回 SDK 实例,nil 表示初始化失败
设置媒体参数
- (void)setParamSettings:(RtcParameterSettings *)paramSettings paramType:(RtcParamSettingType)paramType;
音视频相关参数设置。
该函数在 loginRtcRoomWithRoomName 前调用,用于设置音视频采集,编解码相关的参数。
参数
参数 | 类型 | 描述 |
---|---|---|
paramSettings | RtcParameterSettings* | 设置参数包括分辨率、帧率、码率、视频方向等 |
paramType | RtcParamSettingType | 参数类型,可指定设置某一项,或设置所有参数 |
RtcParameterSettings 定义
// Audio
@property (nonatomic, assign) BOOL hasAudio; // 是否采集音频数据
@property (nonatomic, assign) BOOL hasRemoteAudio; // 是否自动订阅远端音频流,默认 YES
@property (nonatomic, assign) BOOL isCreatingAecDump; // 是否开启aecdump
@property (nonatomic, assign) BOOL isUsingLevelControl; // 是否开启等级控制
@property (nonatomic, assign) BOOL isUsingManualConfig; // 是否开启手动配置
@property (nonatomic, assign) BOOL isExportAudioRecord; // 是否开启外部采集
@property (nonatomic, assign) BOOL isExportAudioPlayout; // 是否开启外部播放
@property (nonatomic, assign) BOOL isExportAudioRecordPlayoutMix; // 是否开启外部混音
@property (nonatomic, assign) BOOL isEnableExternalAudioDevice;//是否外部音频设备
@property (nonatomic, assign) BOOL disableAudioMixWithOthers;//是否混音
@property (nonatomic, assign) int audioSampleRate;//音频帧率
@property (nonatomic, assign) int audioBitrate; // 音频码率 kbps
@property (nonatomic, assign) RtcAudioBitrateMode audioBitrateMode;//音频码率模式
@property (nonatomic, assign) RtcTransportAudioChannel audioChannelTransport;//音频转推模式
@property (nonatomic, assign) BOOL isSoftNsEnable;//是否噪音抑制
@property (nonatomic, assign) int audioJitterBufferSize;//音频抖动缓冲空间
@property (nonatomic, assign) int playoutDelayAudioOnly;//音频播放延迟
@property(nonatomic, assign) int audioCodeComplex; //音频编码复杂度 value [0 - 10]
@property (nonatomic, assign) BOOL audioLevelEnable;//是否开启音频激励
@property (nonatomic, assign) int audioLevelTopCount;//音频层级最大数
@property (nonatomic, assign) RtcNetworkDetectionMode networkDetectionMode; // 带宽探测模式(用于POC环境/实验室环境测试)
//Video
@property (nonatomic, assign) BOOL hasVideo; // 是否开启视频采集
@property (nonatomic, assign) BOOL hasRemoteVideo; // 是否自动订阅远端视频流,默认 YES
@property (nonatomic, assign) BOOL isEnableExternalRender; // 是否开启外部渲染
@property (nonatomic, assign) BOOL isEnableHighProfile; // 开启highProfile
@property (nonatomic, assign) BOOL isEnableVBR; // 开启VBR模式保障编码清晰度更高
@property (nonatomic, assign) BOOL isEnableFixedResolution; // 开启固定分辨率
@property (nonatomic, assign) BOOL isEnableVideoDump;//是否开启视频dump
@property (nonatomic, assign) BOOL isVideoFramingEnhance;//是否视频增强
@property (nonatomic, assign) BOOL isEnableJitterRetransmission;//是否发送抖动信息
@property (nonatomic, assign) RtcVideoBgPushMode videoBgPushMode; // 后台推流模式
@property (nonatomic, assign) BOOL enableAutoReconnect; // 网络重连接
@property (nonatomic, assign) BOOL isIgnoreUnknownSEI; // 忽略未知SEI消息
/// 上行视频降级策略,默认 MAINTAIN_FRAMERATE
/// @discussion 注意当该配置为 MAINTAIN_FRAMERATE 或 BALANCED 时,若同时开启了 isEnableFixedResolution,分辨率动态调整策略会失效
@property (nonatomic, assign) RtcVideoDegradationPreference degradationPreference;
/// 采集视频参数设置
@property (nonatomic, copy) RtcVideoBaseParams *videoCaptureParams;
/// 为不同媒体类型流配置不同编码参数,不同 RtcMediaTarget 参考 BaiduRtcRoomApiDefine 中的定义
@property (nonatomic, copy) NSDictionary<RtcMediaTarget, RtcVideoEncodeParams *> *videoEncodeParams;
@property (nonatomic, assign) BOOL hasData; // 是否开启DataChannel
//发布订阅流
@property (nonatomic) BOOL isAutoPublish; // 是否自动发布流
@property (nonatomic) BOOL isAutoSubscribe; // 是否自动订阅流
@property (nonatomic, assign) BOOL enableMultiStream;//是否多流模式, 默认YES
@property (nonatomic, assign) BOOL enableBeauty; // 是否启用内部美颜
@property (nonatomic, assign) BOOL enableAudioProcess; // 是否启用内部音频处理
@property (nonatomic, assign) LiveServerInfo *roomTransInfo; // 房间转推配置
@property (nonatomic, assign) LiveServerInfo *anchorTransInfo; // 主播转推配置
@property (nonatomic, assign) BOOL isMixing; // 是否混流
@property (nonatomic, copy) NSString *rtmpUrl; // 转推地址
@property (nonatomic, assign) RtcLiveTransferMode liveTransferMode; // 转推模式
// signal channel
@property (nonatomic, assign) RtcSignalChannelMode signalChannelMode;//信令模式
@property (nonatomic, copy) NSString *kcpServerDomain;//信令地址
@property (nonatomic, copy) NSString *kcpSignalServerDomain;//信令地址
@property (nonatomic, assign) RtcSignalChannelMode signalChannelMode; // 信令模式 0: 传统TCP RTC_SIGNAL_CHANNEL_MODE_TCP 1: quic协议 RTC_SIGNAL_CHANNEL_MODE_QUIC
@property (nonatomic, assign) int subscribeCount; // 精简信令模式预创建最多订阅人数
@property (nonatomic, assign) NSSubscribeMode subscribeMode; // 精简信令模式 0:kSubscribeModeManual 手动订阅, 1:kSubscribeModeAuto 自动订阅 2:kSubscribeModeMeeting 会议模式 音频自动订阅,视频手动订阅
RtcVideoBaseParams 定义
@property (nonatomic, assign) int videoFps;
@property (nonatomic, assign) int videoWidth;
@property (nonatomic, assign) int videoHeight;
RtcVideoEncodeParams 定义
@interface RtcVideoEncodeParams : RtcVideoBaseParams<NSCopying>
@property (nonatomic, assign) int gopSize; // unit: frames
@property (nonatomic, assign) int videoBitrate; // unit: kbps
@property (nonatomic, assign) int videoMinBitrate; // unit: kbps
@property (nonatomic, assign) RtcVideoEncodeType videoCodecType;
@end
typedef NS_ENUM(NSInteger, RtcVideoEncodeType) {
RTC_VIDEO_ENCODE_TYPE_H264 = 0,
RTC_VIDEO_ENCODE_TYPE_VP8,
RTC_VIDEO_ENCODE_TYPE_VP9,
RTC_VIDEO_ENCODE_TYPE_H263,
RTC_VIDEO_ENCODE_TYPE_HEVC,
RTC_VIDEO_ENCODE_TYPE_JPEG,
RTC_VIDEO_ENCODE_TYPE_OTHER
};
RtcVideoEncodeType 定义
typedef NS_ENUM(NSInteger, RtcVideoEncodeType) {
RTC_VIDEO_ENCODE_TYPE_H264 = 0,
RTC_VIDEO_ENCODE_TYPE_VP8,
RTC_VIDEO_ENCODE_TYPE_VP9,
RTC_VIDEO_ENCODE_TYPE_H263,
RTC_VIDEO_ENCODE_TYPE_HEVC,
RTC_VIDEO_ENCODE_TYPE_JPEG,
RTC_VIDEO_ENCODE_TYPE_OTHER
};
RtcAudioEncodeType 定义
typedef NS_ENUM(NSInteger, RtcAudioEncodeType) {
RTC_AUDIO_ENCODE_TYPE_OPUS = 0, // 默认opus编码器
RTC_AUDIO_ENCODE_TYPE_AAC,
RTC_AUDIO_ENCODE_TYPE_EAAC,
RTC_AUDIO_ENCODE_TYPE_SPEEX,
RTC_AUDIO_ENCODE_TYPE_AMRWB,
RTC_AUDIO_ENCODE_TYPE_PCMU, // PCMU 对比 OPUS CPU占用更小
RTC_AUDIO_ENCODE_TYPE_PCMA,
RTC_AUDIO_ENCODE_TYPE_G722,
RTC_AUDIO_ENCODE_TYPE_OTHER
};
返回
无
获取媒体参数
- (RtcParameterSettings *)getParamSettings;
获取音视频相关参数。
获取当前设置的音视频相关参数,如分辨率、帧率、码率、视频方向等。
参数
无
返回
RtcParameterSettings 音视频参数信息
开启/关闭引擎统计信息
- (void)setEngineStateStatistics:(BOOL)bOnStatistics;
RTC统计信息开关。
当打开开关时 onEngineStatisticsInfo 函数每隔1秒返回一次统计信息,并且可通过queryEngineStatisticsInfo 函数主动查询RTC统计信息。统计信息包括 CPU, FPS,video codec等。
参数
参数 | 类型 | 描述 |
---|---|---|
bOnStatistics | BOOL | bOnStatistics = true, 打开开关;bOnStatistics = false, 关闭引擎统计信息 |
返回
无
房间相关接口
登录房间(1/2)
- (BOOL)loginRtcRoomWithRoomName:(NSString *)roomName
userID:(NSInteger)userId
displayName:(NSString *)displayName;
登录房间。
登录房间成功,在同一个房间的人能进行相互音视频聊天,如果失败,会通过onErrorInfoUpdate call back 返回错误信息。
参数
参数 | 类型 | 描述 |
---|---|---|
roomName | NSString* | 房间名,长度不可超过 255 byte |
userId | NSInteger | 用户 id,每个房间的用户 ID 必须唯一 |
displayName | NSString* | 用户昵称 |
返回
true 成功,false 失败
登录房间(2/2)
/** 登录参数 */
@interface LoginOptions : NSObject
@property (nonatomic, assign) BOOL isCompulsive;
@property (nonatomic, assign) BRTCRoleType roleType;
@property (nonatomic, strong) NSString *tokenStr;
@end
/**
* @param roomName 房间名,长度不可超过 255 byte
* @param userId 用户id,每个房间的用户ID必须唯一
* @param displayName 用户昵称
* @param options 其他登录参数
**/
- (BOOL)loginRtcRoomWithRoomName:(NSString *)roomName
userID:(NSInteger)userId
displayName:(NSString *)displayName
options:(LoginOptions *)options;
options.isCompulsive = YES; 强制登录房间。
登录房间成功,在同一个房间的人能进行相互音视频聊天,如果失败,会通过onErrorInfoUpdate call back 返回错误信息。此接口会踢出当前房间内同一userID用户,建议在断网重连或者初次登录失败时调用。
参数
参数 | 类型 | 描述 |
---|---|---|
roomName | NSString* | 房间名,长度不可超过 255 byte |
userId | NSInteger | 用户 id,每个房间的用户 ID 必须唯一 |
displayName | NSString* | 用户昵称 |
options.isCompulsive | BOOL | 是否开启强制登录 |
返回
true 成功,false 失败
登出房间
- (BOOL)logoutRtcRoom;
退出房间。
执行 logoutRtcRoom 后,会停止音视频采集,断开与房间服务器的连接,取消音视频的传输,销毁音视频传输通道以及释放其他资源。
参数
无
返回
true 成功,false 失败
启动跨房间通信
- (void)startRoomMediaRelay:(NSString *)destRoomName
userId:(NSInteger)userId
token:(NSString *)token;
启动跨房间通信。
参数
参数 | 类型 | 描述 |
---|---|---|
destRoomName | NSString* | 目标房间 |
userId | NSInteger | 加入目标房间时使用的userId,必须在加入房间中是唯一的 |
token | NSString* | 派发的token字符串 |
返回
无
停止跨房间通信
- (void)stopRoomMediaRelay:(NSString *)destRoomName
userId:(NSInteger)userId;
停止跨房间通信。
参数
参数 | 类型 | 描述 |
---|---|---|
destRoomName | NSString* | 目标房间 |
userId | NSInteger | 加入目标房间时使用的userId,必须在加入房间中是唯一的 |
返回
无
停止所有跨房间通信
- (void)stopRoomMediaRelayAll;
停止所有跨房间通信。
停止所有启动的跨房间通信。
参数
无
返回
无
踢出某成员
- (void)kickOffUserWithId:(NSInteger)userId;
踢除聊天。
房管/主播/会议主持 把某人踢出聊天室。
参数
参数 | 类型 | 描述 |
---|---|---|
userId | NSInteger | 在房间中的用户的 用户 ID |
返回
无
禁言某成员
- (void)shutUpUserWithId:(NSInteger)userId isDisable:(BOOL)isDisable;
禁言。
房管/主播/会议主持 禁止某人发言。
参数
参数 | 类型 | 描述 |
---|---|---|
userId | NSInteger | 在房间中的用户的 用户 ID |
isDisable | BOOL | true:禁言 false:取消禁言 |
返回
无
解散房间
- (void)disbandRoom;
解散房间。
房间管理员有权利解散整个房间,解散后,房间中的每个人都退出房间。
参数
无
返回
无
切换角色
- (void)switchRole:(BRTCRoleType)roleType;
切换角色。
参数 type
BRTC_ROLE_ANCHOR 主播角色 支持推流和拉流 BRTC_ROLE_AUDIENCE 观众角色,仅仅支持拉流
返回 无
获取房间成员ID列表
- (NSArray *)queryUserListOfRoom;
查询媒体用户。
查询房间用户信息,获取房间中所有媒体用户列表。
参数
无
返回
NSArray* 用户信息列表
获取房间成员详细列表
- (NSArray *)queryMessageUserListOfRoom;
查询消息用户。
查询房间用户信息,获取房间中 所有用户列表及用户流状态信息,是否可订阅,是否禁言,禁画中
参数
无
返回
NSArray* 用户信息列表
发布/订阅流相关接口
开始直播推流
- (void)startLiveServerStreaming:(NSString *)url
isMix:(BOOL)isMix
isRecording:(BOOL)isRecording
mixTemplate:(NSString *)mixTmplt
transferMode:(RtcLiveTransferMode)mode;
动态配置server端推流参数。
该接口用于动态配置server推流的参数。configLiveServerWithUrl在执行loginRtcRoom之前调用。本接口在loginRtcRoom成功后调用。两个接口不要混用。
参数
参数 | 类型 | 描述 |
---|---|---|
url | NSString* | rtmp推流地址 |
isMix | BOOL | 是否做混流处理 |
isRecording | BOOL | 是否录制 |
mixTmplt | NSString* | 混流模版 |
mode | RtcLiveTransferMode | 转推模式,有两种: 聊天室模式, 主播转推模式 |
返回
无
停止直播推流
- (void)stopLiveServerStreaming:(RtcLiveTransferMode)transferMode;
停止server推流。
若需要通话过程中,停止转推,调用该接口。
参数
参数 | 类型 | 描述 |
---|---|---|
transferMode | RtcLiveTransferMode | 转推模式,有两种: 聊天室模式, 主播转推模式 |
返回
无
发布媒体流
- (void)publishStreaming;
发布流。
流发布在 roomId 指定的房间,在同一房间 joined 的用户可以相互订阅流,默认在发布流的同时, listening/subscriber 在该房间其他用户的流。
参数
无
返回
无
停止发布媒体流
- (void)stopPublishStreaming;
停止发布流。
stop 通过 publishStreaming 发布的流。
参数
无
返回
无
订阅某成员媒体流
- (void)subsribeStreaming:(NSArray<NSNumber *> *)streamingIds;;
订阅流。
用于订阅同一房间的其他用户的流.
参数
参数 | 类型 | 描述 |
---|---|---|
streamingIds | NSArray<NSNumber*>* | 用户要订阅的其他用户的流id列表(即其他用户id列表) |
返回
无
订阅某成员音频流
- (void)subscribeAudioStreaming:(NSNumber *)feedId;
订阅指定远端用户音频流。
参数
参数 | 类型 | 描述 |
---|---|---|
feedId | NSNumber * | 指定远端用户ID |
返回
无
订阅某成员视频流
- (void)subscribeVideoStreaming:(NSNumber *)feedId;
订阅指定远端用户视频流。
参数
参数 | 类型 | 描述 |
---|---|---|
feedId | NSNumber * | 指定远端用户ID |
返回
无
订阅所有远端用户音频流
- (void)subscribeAllRemoteAudioStreams;
订阅同一房间所有远端用户音频流
参数
无
返回
无
订阅所有远端用户视频流
- (void)subscribeAllRemoteVideoStreams;
订阅同一房间所有远端用户视频流
参数
无
返回
无
停止订阅某成员媒体流
- (void)stopSubscribeStreaming:(NSArray<NSNumber *> *)streamingIds;;
停止订阅流。
该接口停止已经订阅的流.
参数
参数 | 类型 | 描述 |
---|---|---|
streamingIds | NSArray<NSNumber*>* | 用户要停止订阅的流id列表(即其他用户id列表) |
返回
无
停止订阅某成员音频流
- (void)stopSubscribeAudioStreaming:(NSNumber *)feedId;
停止订阅指定远端用户音频流。
参数
参数 | 类型 | 描述 |
---|---|---|
feedId | NSNumber * | 指定远端用户ID |
返回
无
停止订阅某成员视频流
- (void)stopSubscribeVideoStreaming:(NSNumber *)feedId;
停止订阅指定远端用户视频流。
参数
参数 | 类型 | 描述 |
---|---|---|
feedId | NSNumber * | 指定远端用户ID |
返回
无
停止订阅所有远端用户音频流
- (void)stopSubscribeAllRemoteAudioStreams;
停止订阅同一房间所有远端用户音频流
参数
无
返回
无
停止订阅所有远端用户视频流
- (void)stopSubscribeAllRemoteVideoStreams;
停止订阅同一房间所有远端用户视频流
参数
无
返回
无
消息相关接口
广播消息(数据通道)
- (int)sendMessage:(NSString *)message;
广播消息。
当enable数据通道后,可通过该接口发送文本消息给在同一房间的其他用户。
参数
参数 | 类型 | 描述 |
---|---|---|
message | NSString* | 需要发送的文本消息 |
返回
-1 发送失败,0 发送成功
广播消息(信令通道)
- (int)sendMessage2:(NSString *)message;
广播消息。
通过信令信道 该接口发送文本消息给在同一房间的其他用户。
参数
参数 | 类型 | 描述 |
---|---|---|
message | NSString* | 需要发送的文本消息 |
返回
-1 发送失败,0 发送成功
发送SEI消息
- (void)sendSEIMsg:(NSData *)message repeatCount:(int)repeatCount;
message 二进制消息 消息长度不超过1K。
repeatCount 重复次数
发送SEI消息,房间中其他用户通过 onRecvSEIMsg 回调收到消息。
参数
参数 | 类型 | 描述 |
---|---|---|
message | NSData* | 二进制消息 |
repeatCount | int | 重复次数 |
向某成员发送消息
- (int)sendMessage2WithUserId:(NSString *)message userId:(NSNumber *)userId;
指定用户发送消息。
发送文本消息给在同一房间的指定用户。
参数
参数 | 类型 | 描述 |
---|---|---|
message | NSString* | 需要发送的文本消息 |
userId | NSNumber* | 指定接收消息的用户 ID |
返回
-1 发送失败,0 发送成功
设置用户属性
- (int)setUserAttribute:(NSString *)attribute;
attribute 属性设置。
设置本用户 attribute 属性,房间其他用户由 onTextMessageAttribute 通知收到。
参数
参数 | 类型 | 描述 |
---|---|---|
attribute | NSString* | attribute 值 |
返回
-1 设置失败,0 设置成功
获取用户属性
- (int)getUserAttribute:(NSNumber *)userID;
attribute属性获取。
获取指定用户 attribute 属性,属性值由 onTextMessageAttribute 通知得到。
参数
参数 | 类型 | 描述 |
---|---|---|
userID | NSNumber* | 用户ID |
返回
-1 获取失败,0 获取成功
视频相关接口
设置自定义视频采集器
- (void)setVideoCapturer:(id<BaiduVideoCapturer>)capturer;
设置自定义主视频源。主视频流一般为相机流,当接入方通过调用该方法设置自定义源,内部相机采集将不会启动
必须在登录房间前调用,并且不能置空。
参数
参数 | 类型 | 描述 |
---|---|---|
capturer | id<BaiduVideoCapturer> | 遵循 BaiduVideoCapturer 协议的对象 |
返回
无
设置本地视频采集器
v2.3 开始已废弃, 请使用 setVideoCaoturer: 自定义视频采集器接口
- (void)setVideoCaptureFactory:(id<BaiduVideoCaptureFactory>)factory BRTC_DEPRECATED("Use setVideoCapturer: instead.");
外部采集设置。若开启视频外部采集,则sdk内部不打开拍摄头采集视频。
设置外部采集模块。必须在登录房间前调用,并且不能置空。
参数
参数 | 类型 | 描述 |
---|---|---|
factory | id<BaiduVideoCaptureFactory> | 工厂对象,遵循 BaiduVideoCaptureFactory 协议的对象 |
返回
无
设置外部渲染回调对象
- (void)setRenderDelegate:(id<BaiduRtcApiRenderDelegate>)renderDelegate;
外部渲染设置。
设置外部渲染回调对象。使用外部渲染功能,需要设置代理对象。未设置代理对象,或对象设置错误,可能导致无法正常收到相关回调
注意:请使用 BaiduExternalVideoRender
参数
参数 | 类型 | 描述 |
---|---|---|
renderDelegate | id<BaiduRtcApiRenderDelegate> | 遵循 BaiduRtcApiRenderDelegate 协议的代理对象 |
返回
无
开启本地预览
- (void)startPreview;
本地预览。
打开camera,开始预览。
参数
无
返回
无
停止本地预览
- (void)stopPreview;
停止预览。
关闭camera, 停止本地预览。
参数
无
返回
无
设置本地渲染窗口
- (void)setLocalDisplay:(RTCLocalVideoView *)localVideoView;
本地显示view设置。
设置本地显示view。在 loginRtcRoomWithRoomName 之前调用,loginRtcRoomWithRoomName 之后,本地视频数据会显示到 localVideoView, localVideoView 的位置大小要与采集的视频大小成比例。
参数
参数 | 类型 | 描述 |
---|---|---|
localVideoView | RTCLocalVideoView* | 本地显示view,用于显示camera采集的视频数据 |
返回
无
设置本地指定类型流渲染窗口
- (void)setLocalDisplay:(RTCLocalVideoView *)localVideoView mediaTarget:(RtcMediaTarget)mediaTarget;
设置本地关联指定媒体目标类型的显示view。
设置本地显示view。在 loginRtcRoomWithRoomName 之前调用,loginRtcRoomWithRoomName 之后,本地视频数据会显示到 localVideoView, localVideoView 的位置大小要与采集的视频大小成比例。
参数
参数 | 类型 | 描述 |
---|---|---|
localVideoView | RTCLocalVideoView* | 本地显示view,用于显示camera采集的视频数据 |
mediaTarget | RtcMediaTarget | 视图需要绑定到的媒体目标,具体信息参考 BaiduRtcRoomApiDefines.h |
返回
无
设置指定远端用户渲染窗口
- (void)setRemoteDisplay:(RTCRemoteVideoView *)remoteVideoView userId:(NSInteger)userId;
多人模式设置指定用户远端 view。
在 loginRtcRoomWithRoomName 之后调用,远端视频数据会显示到指定view
参数
参数 | 类型 | 描述 |
---|---|---|
remoteVideoView | RTCRemoteVideoView* | 远端画面显示 view, 用于显示远端用户传输过来的视频数据 |
userId | NSInteger | 远端用户ID |
返回
无
设置指定远端用户指定类型流渲染窗口
- (void)setRemoteDisplay:(RTCRemoteVideoView *)remoteVideoView userId:(NSInteger)userId mediaTarget:(RtcMediaTarget)mediaTarget;
两人通话模式,设置远端指定用户关联指定媒体目标类型的显示 view。
设置远端显示view。在 loginRtcRoomWithRoomName 之前调用,loginRtcRoomWithRoomName 之后,远端视频数据会显示到 remoteVideoView,remoteVideoView 的大小要与采集的视频大小成比例。
参数
参数 | 类型 | 描述 |
---|---|---|
remoteVideoView | RTCRemoteVideoView* | 远端画面显示view, 用于显示远端用户传输过来的视频数据 |
userId | NSInteger | 远端用户ID |
mediaTarget | RtcMediaTarget | 视图需要绑定到的媒体目标,具体信息参考 BaiduRtcRoomApiDefines.h |
返回
无
更新远端用户渲染窗口
- (void)updateDisplay:(RTCRemoteVideoView *)remoteVideoView userId:(NSInteger)userId;
更新指定用户的远端显示view。
在 loginRtcRoomWithRoomName 之后调用,远端视频数据会显示到指定view
参数
参数 | 类型 | 描述 |
---|---|---|
remoteVideoView | RTCRemoteVideoView* | 远端画面显示 view, 用于显示远端用户传输过来的视频数据 |
userId | NSInteger | 远端用户ID |
返回
无
设置是否拉取某成员视频流
-(void)setRemoteVideoPlayState:(BOOL)stats userId:(NSInteger)userId;
指定远端画面暂停/恢复播放。
通过控制远端视频流是否拉取,指定远端画面暂停/恢复播放。
参数
参数 | 类型 | 描述 |
---|---|---|
stats | BOOL | true:拉取;false:停止拉取 默认拉取 |
userId | NSInteger | 远端用户ID |
返回
无
设置本地视频后台推流模式
typedef NS_ENUM(NSInteger, RtcVideoBgPushMode) {
BRTC_VIDEO_BG_PUSH_NOT = 0,
BRTC_VIDEO_BG_PUSH_BLACKFRAME,
BRTC_VIDEO_BG_PUSH_LASTFRAME
};
typedef NS_ENUM(NSInteger, RtcParamSettingType) {
RTC_PARAM_SETTINGS_VIDEO_BG_PUSH_MODE
};
通过 setParamSettings:paramType: 接口设置 videoBgPushMode 选择后台推流模式。需要在登录房间之前设置,默认为不后台推流
视频画面截图
- (void)takeVideoSnapshot:(NSInteger)userId
mediaTarget:(RtcMediaTarget)mediaTarget
completionBlock:(void (^)(UIImage *image, RtcErrorCodes errCode))completionBlock;
对本地或远端用户指定类型的的视频流进行截图,通过回调返回截图结果
注:对本地用户仅支持默认视频流。
参数
参数 | 类型 | 描述 |
---|---|---|
userId | NSInteger | 视频流用户 ID,0 表示截取本地视频画面 |
mediaTarget | RtcMediaTarget | 流类型,如果传入 nil 则指定为默认视频流 |
completionBlock | block | 截图完成回调 |
回调
completionBlock
参数 | 类型 | 描述 |
---|---|---|
image | UIImage * | 截图结果图像 |
errCode | RtcErrorCodes | 0: 截图成功; 601: 视频视图不存在; 602: 视频视图未实现截图能力; 603: 视频视图截图结果为空; |
设置视频上行降级策略
typedef NSString *RtcVideoDegradationPreference NS_TYPED_ENUM;
extern RtcVideoDegradationPreference const RTC_VIDEO_DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE;
extern RtcVideoDegradationPreference const RTC_VIDEO_DEGRADATION_PREFERENCE_MAINTAIN_RESOLUTION;
extern RtcVideoDegradationPreference const RTC_VIDEO_DEGRADATION_PREFERENCE_BALANCED;
通过 setParamSettings:paramType: 接口设置 degradationPreference 选择视频上行降级策略。需要在登录房间之前设置,默认为 MAINTAIN_FRAMERATE
注:当该配置为 MAINTAIN_FRAMERATE 或 BALANCED 时,若同时开启了 isEnableFixedResolution,分辨率动态调整策略会失效
摄像头相关接口
切换摄像头
- (void)switchCamera;
摄像头切换。
切换摄像头,前后摄像头切换。
参数
无
返回
无
关闭/开启本地视频采集
- (void)muteCamera:(BOOL)isMute;
关闭/打开摄像头。
在关闭摄像头后,不传输本地视频数据给对方,默认打开。
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | BOOL | true:关闭视频数据传输;fasle:打开 |
返回
无
设置前后摄像头
-(void)setCameraFace:(BOOL)front;
设置前后摄像头。
设置前后摄像头。
参数
参数 | 类型 | 描述 |
---|---|---|
front | BOOL | true:前置; false:后置 |
返回
无
设置摄像头对焦
- (void)cameraFocusWithPoint:(CGPoint)point andPlaneSize:(CGSize)size;
摄像头对焦。
摄像头对焦功能,支持手动和自动对焦。
参数
参数 | 类型 | 描述 |
---|---|---|
point | CGPoint | 对焦点坐标 |
size | CGSize | camera预览view尺寸 |
返回
无
音频相关接口
设置音频录制回调对象
- (void)setAudioRecordDelegate:(id<BaiduRtcApiAudioRecordDelegate>)audioRecordDelegate;
音频录制回调对象设置。
设置音频录制回调代理对象。开启音频录制功能,需要设置代理对象。未设置代理对象,或对象设置错误,可能导致无法正常收到相关回调。
参数
参数 | 类型 | 描述 |
---|---|---|
audioRecordDelegate | id<BaiduRtcApiAudioRecordDelegate> | 遵循 BaiduRtcApiAudioRecordDelegate 协议的代理对象 |
返回
无
设置音频会话代理对象
- (void)setAudioSessionDelegate:(id<BaiduRtcRoomApiAudioSessionDelegate>)audioSessionDelegate;
设置音频会话代理对象。
接收音频设备状态变化的通知,详情请看BaiduRtcRoomApiAuidoSession.h。
参数
参数 | 类型 | 描述 |
---|---|---|
audioSessionDelegate | id<BaiduRtcRoomApiAudioSessionDelegate> | 详细定义参考 BaiduRtcRoomApiAuidoSession.h |
返回
无
设置音频外部采集代理对象
- (void)setAudioExternalDeviceDelegate:(id<BaiduRtcRoomApiAudioExternalDeviceDelegate>)audioExternalDelegate;
设置音频外部采集代理对象。
接收音频外部采集的回调功能。
参数
参数 | 类型 | 描述 |
---|---|---|
audioExternalDelegate | id<BaiduRtcRoomApiAudioExternalDeviceDelegate> | 详细定义参考 BaiduRtcRoomApiAudioExternalDevice.h |
返回
无
关闭音频采集
- (void)muteMicphone;
关闭音频采集。
关闭音频采集,停止音频的采集
参数
无
返回
无
关闭/开启本地音频采集
- (int)enableLocalAudio:(BOOL)enabled;
关闭/开启本地音频采集。
关闭音频采集,停止音频的采集。
参数
参数 | 类型 | 描述 |
---|---|---|
enabled | BOOL | true:开启本地音频采集;false:关闭本地音频采集 |
返回
-1 关闭/开启本地音频采集失败,0 关闭/开启本地音频采集成功
关闭/开启扬声器
- (void)muteSpeaker:(BOOL) isMute;
关闭/开启扬声器。
关闭扬声器,停止音频播放。
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | BOOL | true:关闭扬声器;false:开启扬声器 |
返回
无
关闭/打开音频采集
- (void)muteMicphone:(BOOL)isMute;
关闭/打开音频采集。
关闭音频采集,停止音频的采集,默认开启。
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | BOOL | true:停止音频发送;false:开启音频发送 |
返回
无
切换扬声器/听筒(1/2)
- (void)switchLoundSpeaker;
开关扬声器。
开关扬声器,听筒与扬声器切换(免提功能)。
参数
无
返回
无
切换扬声器/听筒(2/2)
- (void)switchAudioCategaryWithSpeaker:(BOOL)isSpeaker;
扬声器和听筒切换
参数
参数 | 类型 | 描述 |
---|---|---|
isSpeaker | BOOL | true:开启扬声器;false:开启听筒模式 |
返回
无
预置听筒/扬声器
- (void)presetLoudSpeaker:(BOOL)isPresetLoudSpeaker;
预置听筒扬声器。
在 initSDKWithAppID 之后,loginRtcRoomWithRoomName 之前调用,预置听筒/扬声器播放语音。
参数
参数 | 类型 | 描述 |
---|---|---|
isPresetLoudSpeaker | BOOL | true: 扬声器 false: 听筒 默认听筒 |
返回
无
获取扬声器状态
- (BOOL)isSpeakerOn;
检查音频路由是否是系统扬声器
参数
无
返回
BOOL 系统扬声器状态,YES 表示当前通话音频从系统扬声器输出,NO 表示从其他路由输出,如听筒、耳机、蓝牙设备等
获取房间成员语音激励列表
-(NSArray*)getRemoteAudioLevels;
语音激励接口。
获取用户语音激励列表。
参数
无
返回
NSArray <RtcRoomAudioLevel *> *
/** 用户语音激励 */
@interface RtcRoomAudioLevel : NSObject
/** 用户 ID */
@property (nonatomic, copy) NSNumber *userID;
/** 用户名 */
@property (nonatomic, copy) NSString *userName;
/** 音量 */
@property (nonatomic, assign) NSInteger volumeLevel;
@end
启停用户音量提示
- (void)enableAudioVolumeIndication:(BOOL)enable interval:(int)interval;
启停用户音量提示,开启后按设置间隔时间,通过 onAudioVolumeIndication 方法回调
参数
参数 | 类型 | 描述 |
---|---|---|
enable | BOOL | 控制启用或停止音量提示 |
interval | int | 提示回调间隔,单位毫秒。若启用,不能低于 100ms,建议 300ms |
返回
无
设置音频会话模式
- (void)setAudioSessionMode:(AVAudioSessionMode)audioSessionMode;
设置音频会话模式。
参数
参数 | 类型 | 描述 |
---|---|---|
audioSessionMode | AVAudioSessionMode | 音频会话模式 |
返回
无
开启默认音频自动增益
- (void)enableAgc:(BOOL)enable;
自动增益开关。
是否开启音频自动增益。
参数
参数 | 类型 | 描述 |
---|---|---|
enable | BOOL | true: 开启 false: 关闭 默认开启 |
返回
无
开启默认音频自动噪声抑制
- (void)enableAns:(BOOL)enable;
噪声抑制开关。
是否开启音频噪声抑制。
参数
参数 | 类型 | 描述 |
---|---|---|
enable | BOOL | true: 开启 false: 关闭 默认开启 |
返回
无
设置音频输出设备
- (void)setSoundMode:(RtcSoundMode)mode;
设置声音输出方式。
设置声音输出方式,可选值:speaker(扬声器)或 ear(听筒)。
参数
参数 | 类型 | 描述 |
---|---|---|
mode | RtcSoundMode | 可选值:speaker(扬声器)或 ear(听筒) |
返回
无
设置本地采集音频音量
- (void)setLocalAudioCaptureVolume:(float)volume;
设置本地采集音频音量, 范围[0, 4]。
参数
参数 | 类型 | 描述 |
---|---|---|
volume | float | 音量。范围[0, 4]. |
返回
无
设置是否拉取某成员音频流
-(void)setRemoteAudioPlayState:(BOOL)stats userId:(NSInteger)userId;
指定远端音频暂停/恢复播放。
通过控制是否拉取远端音频流,控制指定远端用户声音暂停/恢复播放。
参数
参数 | 类型 | 描述 |
---|---|---|
stats | BOOL | true: 拉取 false: 停止拉取 默认拉取 |
userId | NSInteger | 用户ID |
返回
无
设置远端用户音频播放音量
-(void)setRemoteAudioPlayVolume:(float)volume userId:(NSInteger)userId;
指定用户音量。
指定用户音量. 音量设置只在本端有效,其他订阅者无影响。
参数
参数 | 类型 | 描述 |
---|---|---|
volume | float | 音量,范围[0,1]。 |
userId | NSInteger | 用户ID |
返回
无
设置所有远端用户混音后音量
- (void)setRemoteAudioPlayVolume:(float)volume;
设置所有远端用户混音后音量,范围[0, 4]。
参数
参数 | 类型 | 描述 |
---|---|---|
volume | float | 音量。范围[0, 4]. |
返回
无
转推配置相关接口
配置媒体转推参数
- (void)configLiveServerWithUrl::(NSString *)url
isMix:(BOOL)isMix
isRecording:(BOOL)isRecording
mixTemplate:(NSString *)mixTmplt
transferMode:(RtcLiveTransferMode)mode
avParam:(RtcLiveAuidoVideoParameters*)avParam;
该接口用于配置server推流的参数,聊天室模式:在同一个rtc房间的所有参与者在混流后,直接转推到一个指定的直播房间; 主播转推模式:主播推向不同的直播房间。
参数
参数 | 类型 | 描述 |
---|---|---|
url | NSString* | 转推url地址 |
isMix | BOOL | 是否混流 |
isRecording | BOOL | 是否录制 |
mixTemplate | NSString* | 混流模板 |
transferMode | RtcLiveTransferMode | 转推模式 |
avParam | RtcLiveAuidoVideoParameters* | 转推参数 |
混流模板名称 | 说明 |
---|---|
side_by_side_primary_360p_4_3 | 主次平铺, 分辨率 480x360 (固定码率、帧率) |
side_by_side_primary_360p_4_3-xx-xx | 主次平铺, 分辨率 480x360 (自定义码率、帧率) 下面模板也可以设置 |
side_by_side_primary_360p_16_9 | 主次平铺, 分辨率640x360 |
side_by_side_primary_480p_4_3 | 主次平铺, 分辨率640x480 |
side_by_side_primary_480p_16_9 | 主次平铺, 分辨率854x480 |
side_by_side_primary_540p_16_9 | 主次平铺, 分辨率960x540 |
side_by_side_primary_720p_4_3 | 主次平铺, 分辨率960x720 |
side_by_side_primary_720p_16_9 | 主次平铺, 分辨率1280x720 |
side_by_side_equal_360p_4_3 | 平铺模式(大小相等), 分辨率480x360 |
side_by_side_equal_360p_16_9 | 平铺模式(大小相等), 分辨率640x360 |
side_by_side_equal_480p_4_3 | 平铺模式(大小相等), 分辨率640x480 |
side_by_side_equal_480p_16_9 | 平铺模式(大小相等), 分辨率854x480 |
side_by_side_equal_540p_16_9 | 平铺模式(大小相等), 分辨率960x540 |
side_by_side_equal_720p_4_3 | 平铺模式(大小相等), 分辨率960x720 |
side_by_side_equal_720p_16_9 | 平铺模式(大小相等), 分辨率1280x720 |
picture_in_picture_bottom_360p_4_3 | 画中画模式, 分辨率480x360 |
picture_in_picture_bottom_360p_16_9 | 画中画模式, 分辨率640x360 |
picture_in_picture_bottom_480p_4_3 | 画中画模式, 分辨率640x480 |
picture_in_picture_bottom_480p_16_9 | 画中画模式, 分辨率854x480 |
picture_in_picture_bottom_540p_16_9 | 画中画模式, 分辨率960x540 |
picture_in_picture_bottom_720p_4_3 | 画中画模式, 分辨率960x720 |
picture_in_picture_bottom_720p_16_9 | 画中画模式, 分辨率1280x720 |
side_by_side_primary_480p_9_16 | 主次平铺, 分辨率480x854(竖屏) |
side_by_side_primary_540p_9_16 | 主次平铺, 分辨率540*960(竖屏) |
side_by_side_primary_544p_9_16 | 主次平铺, 分辨率544*960(竖屏) |
side_by_side_primary_720p_9_16 | 主次平铺, 分辨率720*1280(竖屏) |
side_by_side_primary_1080p_9_16 | 主次平铺, 分辨率1080*1920(竖屏) |
side_by_side_equal_480p_9_16 | 平铺模式, 分辨率480x854(竖屏) |
side_by_side_equal_540p_9_16 | 平铺模式, 分辨率540*960(竖屏) |
side_by_side_equal_544p_9_16 | 平铺模式,分辨率544*960(竖屏) |
side_by_side_equal_720p_9_16 | 平铺模式,分辨率720*1280(竖屏) |
side_by_side_equal_1080p_9_16 | 平铺模式,分辨率1080*1920(竖屏) |
picture_in_picture_bottom_480p_9_16 | 画中画模式, 分辨率480x854(竖屏) |
picture_in_picture_bottom_540p_9_16 | 画中画模式,分辨率540*960(竖屏) |
picture_in_picture_bottom_544p_9_16 | 画中画模式,分辨率544*960(竖屏) |
picture_in_picture_bottom_720p_9_16 | 画中画模式,分辨率720*1280(竖屏) |
picture_in_picture_bottom_1080p_9_16 | 画中画模式,分辨率1080*1920(竖屏) |
返回
无
事件回调
登录成功事件
/**
* 登录成功回调
* @param roomId 房间id
* @param uid 用户uid
* @param elapsed 登录耗时
*/
- (void)onLoinSuccess:(NSNumber *)roomId uid:(NSInteger)uid elapsed:(int)elapsed;
登录成功回调
参数
参数 | 类型 | 描述 |
---|---|---|
roomId | NSNumber | 房间id |
uid | NSInteger | 房间id |
elapsed | int | 登录耗时 |
错误信息回调
/**
* 错误信息回调
* @param errCode 错误号码
* @param errMsg 错误消息提示
* @param extInfo 附加信息
*/
- (void)onError:(NSInteger)errCode errMsg:(NSString *)errMsg extInfo:(nullable NSDictionary*)extInfo;
错误信息回调
参数
参数 | 类型 | 描述 |
---|---|---|
errCode | NSInteger | 错误码 RtcErrorCodes |
errMsg | NSString | 错误信息 |
extInfo | NSDictionary | 附加信息 |
回调事件
typedef NS_ENUM(NSInteger, RtcErrorCodes) {
NO_ERR = 0,
ERR_INTERNAL = 500, // 内部错误
ERR_LOGIN_ROOM_PARAMS, // 登录参数错误
ERR_CHANNEL_IO_EXCEPTION, // 信令错误
ERR_CHANNEL_IO_DISCARD_BY_REMOTE, // 信令被远端关闭
ERR_AUDIO_DEVICE_CAPTURE, // 音频采集错误
ERR_AUDIO_DEVICE_CONFIGURE, // 音频设备配置错误
ERR_RECONNECT_OVER_MAX_COUNT, // 重连接超限
ERR_SESSION_DESCRIPTION, // 内部SDP错误
ERR_VIDEO_VIEW_NOT_EXIST = 510, // 视频视图不存在
ERR_VIDEO_VIEW_CANNOT_SNAPSHOT, // 视频视图未实现截图能力
ERR_VIDEO_VIEW_SNAPSHOT_EMPTY, // 视频视图截图结果为空
};
警告信息回调
/**
* 警告信息回调
* @param warningCode 警告号码
* @param warnMsg 警告消息提示
* @param extInfo 附加信息
*/
- (void)onWarning:(NSInteger)warningCode warningMsg:(NSString *)warnMsg extInfo:(nullable NSDictionary*)extInfo;
警告信息回调
链接状态变更
/**
* 链接状态发生变化
* @param state 链接状态值 取值: RtcConnectionState
* @param reason 状态变化原因 取值: RtcConnectionChange
*/
- (void)onConnectionStateChanged:(NSInteger)state reason:(NSInteger)reason;
链接状态变更回调
参数
参数 | 类型 | 描述 |
---|---|---|
state | NSInteger | 链接状态值 RtcConnectionState |
reason | NSInteger | 变更原因, 0默认行为 |
视频首帧
/**
* 视频首帧回调
* @param uid 远端用户uid
* @param width 视频宽
* @param height 视频高
*/
- (void)onFirstVideoFrame:(NSInteger)uid width:(int)width height:(int)height;
视频渲染首帧回调
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
width | int | 用户视频宽 |
height | int | 用户视频高 |
远端用户加入
/**
* 远端用户加入
* @param uid 用户uid
* @param userName 用户昵称
*/
- (void)onRemoteUserJoinRoom:(NSInteger)uid userName:(NSString *)userName;
远端用户加入事件
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
userName | NSString | 用户昵称 |
远端用户离开
/**
* 远端用户离开
* @param uid 用户uid
* @param userName 用户昵称
*/
- (void)onRemoteUserLeaveRoom:(NSInteger)uid userName:(NSString *)userName;
远端用户离开事件
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
userName | NSString | 用户昵称 |
远端视频流变更
/**
* 远端视频流状态变化
* @param uid 用户uid
* @param userName 用户昵称
* @param desc 流描述
* @param state 远端流到来 RTC_STREAM_ADD (1) , 远端流离开 RTC_STREAM_REMOVE (2), RtcStreamChange
*/
- (void)onVideoStreamChangedState:(NSInteger)uid userName:(NSString *)userName desc:(NSString *)desc state:(NSInteger)state;
远端视频流到达/离开
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
userName | NSString | 用户昵称 |
desc | NSString | 描述 默认 "video" |
state | NSInteger | 状态 RtcStreamChange |
远端音频流变更
/**
* 远端音频流状态变化
* @param uid 用户uid
* @param userName 用户昵称
* @param desc 流描述
* @param state 远端流到来 RTC_STREAM_ADD (1) , 远端流离开 RTC_STREAM_REMOVE (2), RtcStreamChange
*/
- (void)onAudioStreamChangedState:(NSInteger)uid userName:(NSString *)userName desc:(NSString *)desc state:(NSInteger)state;
远端音频频流到达/离开
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
userName | NSString | 用户昵称 |
desc | NSString | 描述 默认 "video" |
state | NSInteger | 状态 RtcStreamChange |
媒体通路状态变更
/**
* 媒体通路状态变化
* @param uplink 上行 YES, 下行 NO
* @param state 状态 RtcMediaStreamState
*/
- (void)onMediaStreamStateChange:(BOOL)uplink state:(NSInteger)state;
媒体链路变更
参数
参数 | 类型 | 描述 |
---|---|---|
uplink | BOOL | 上行 YES, 下行 NO |
state | NSInteger | 状态 RtcMediaStreamState |
用户被禁言
/**
* 用户被禁言
*/
- (void)onUserShutUp:(NSInteger)uid;
用户被禁言
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
用户被解除禁言
/**
* 解除用户被禁言
*/
- (void)onUserDisShutUp:(NSInteger)uid;
用户被解除禁言
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
用户房间被解散
/**
* 用户房间解散
*/
- (void)onRoomDisbanded;
用户房间被解散
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
用户被踢出房间
/**
* 用户被踢出房间
*/
- (void)onUserKickOff:(NSInteger)uid;
用户被踢出房间
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
发送音视频状态
/**
* 发送音视频状态
* @param type 媒体类型
* @param state 0 推流失败, 1推流成功
*/
- (void)onSendMediaState:(BRTCMediaType)type state:(int)state;
发送音视频状态
参数
参数 | 类型 | 描述 |
---|---|---|
type | BRTCMediaType | BRTCMediaType 媒体类型 |
state | BRTCMediaType | 0 推流失败,1推流成功 |
视频拉流降级
/** 视频下行降级
* @param uid 用户uid
* @param netState 网络质量状态
* @param demoteState 降级状态 RtcDemoteType
*/
- (void)onPullRemoteState:(NSInteger)uid netState:(int)netState demoteState:(int)demoteState;
视频下行降级
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
netState | int | 网络状态 |
demoteState | int | RtcDemoteType 降级类型 |
转推音视频
/** 转推音视频状态
* @param mode 直播转推模式 RtcLiveTransferMode
* @param url 推流地址
* @param state 状态 RtcLiveTransferState
*/
- (void)onLivePublishState:(RtcLiveTransferMode)mode url:(NSString *)url state:(RtcLiveTransferState)state;
转推音视频
参数
参数 | 类型 | 描述 |
---|---|---|
mode | RtcLiveTransferMode | 转推类型 |
url | NSString | 转推地址 |
state | RtcLiveTransferState | 转推状态 RtcLiveTransferState |
relay状态
/** MediaRealy状态更新
* @param type 类型 RtcMediaRealyType START_MEDIA_RELAY:1 STOP_MEDIA_RELAY:2
* @param state 状态 RtcMediaRealyState
*/
- (void)onMediaRelayState:(RtcMediaRealyType)type state:(RtcMediaRealyState)state;
relay状态变化
参数
参数 | 类型 | 描述 |
---|---|---|
type | RtcMediaRealyType | 媒体类型 |
state | RtcMediaRealyState | 状态 |
开启/关闭引擎统计信息
- (void)onEngineStatisticsInfo:(NSArray *)statistics;
RTC引擎状态信息统计。该callback返回当前rtc engine的一些参数和性能信息,如传输fps,码率,网络状况,cpu等信息给app
参数
参数 | 类型 | 描述 |
---|---|---|
statistics | NSArray | rtc引擎状态信息统计数组 |
返回
无
用户音量提示回调
- (void)onAudioVolumeIndication:(NSArray<RtcRoomAudioLevel *> *)audioLevels;
当通过 enableAudioVolumeIndication 接口开启音量提示后,SDK 会通过该方法按设置间隔回调音量信息。
该方法默认不进行回调。
参数
参数 | 类型 | 描述 |
---|---|---|
audioLevels | NSArray<RtcRoomAudioLevel > | 音量提示信息,包括自己和远端用户 |
返回
无
接收到房间成员的消息回调(1/2)
- (void)onTextMessageArrival:(RtcMessageInfo *)msg;
当房间的其他用户发消息时,会收到该通知(数据通道)
参数
参数 | 类型 | 描述 |
---|---|---|
msg | RtcMessageInfo | 消息结构体,具体消息在该结构体中 |
返回
无
接收到房间成员的消息回调(2/2)
- (void)onTextMessageArrival2:(RtcMessageInfo *)msg;
当房间的其他用户发消息时,会收到该通知(信令通道)
参数
参数 | 类型 | 描述 |
---|---|---|
msg | RtcMessageInfo | 消息结构体,具体消息在该结构体中 |
返回
无
接收到房间成员SEI消息
- (void)onRecvSEIMsg:(NSInteger)uid message:(NSData *)message;
当房间的其他用户发SEI消息时,会收到该通知
参数
参数 | 类型 | 描述 |
---|---|---|
uid | NSInteger | 用户uid |
message | NSData * | 消息 |
返回
无
接收到获取用户属性回调
- (void)onTextMessageAttribute:(NSNumber *)userID attribute:(NSString *)attribute;
房间其他用户调用接口setUserAttribute,或本用户调用getUserAttribute获取用户Attribute属性时,该通知被触发,返回用户attribute属性
参数
参数 | 类型 | 描述 |
---|---|---|
userID | NSNumber | 用户ID |
attribute | NSString* | 属性值 |
返回
无
回调视频卡顿事件(1/2)
- (void)onVideoRenderStuckStart:(NSInteger)userId;
视频超过600ms未渲染回调该事件,用户通知出现视频渲染卡顿 开始
参数
参数 | 类型 | 描述 |
---|---|---|
userId | NSInteger | 用户ID |
返回
无
回调视频卡顿事件(1/2)
- (void)onVideoRenderStuckEnd:(NSInteger)userId duration:(NSInteger)duration;
视频超过600ms未渲染回调该事件,用户通知出现视频渲染卡顿结束
参数
参数 | 类型 | 描述 |
---|---|---|
userId | NSInteger | 用户ID |
duration | NSInteger | 卡顿时长 |
返回
无
屏幕分享相关接口
使用 BRTC 屏幕分享能力,需要同时集成 BaiduRtcReplayKit.framework 扩展模块
开始应用内屏幕分享
- (void)startShareAppScreen API_AVAILABLE(ios(11.0));
开始应用内屏幕分享。仅抓取宿主应用的屏幕内容,仅支持 iOS 11 及以上系统可用
参数
无
返回
无
开始系统屏幕分享
- (void)startShareSystemScreenWithAppGroup:(NSString *)appGroup API_AVAILABLE(ios(11.0));
开始系统屏幕分享。支持抓取整个 iOS 系统的屏幕,详细接入流程及注意事项可参考 SDK 集成文档
参数
参数 | 类型 | 描述 |
---|---|---|
appGroup | NSString * | 用于宿主应用与录屏进程共享的 Application Group Identifier, 目前可不填 |
返回
无
停止屏幕分享
- (void)stopShareScreen;
停止屏幕分享
参数
无
返回
无
更新屏幕分享配置参数
- (int)updateScreenShareParams:(BRTCScreenShareParams *)params;
更新屏幕分享配置参数,包括是否开启音视频流、音视频流配置等。该接口须在 startShareAppScreen 或 startShareSystemScreenWithAppGroup: 之后调用
参数
参数 | 类型 | 描述 |
---|---|---|
params | BRTCScreenShareParams * | 屏幕流音视频参数 |
@interface BRTCScreenShareAudioParams : NSObject<NSCopying>
/// 系统音频流采集音量,[0, 100],默认 100
@property (nonatomic, assign) NSInteger volume;
@end
@interface BRTCScreenShareVideoParams : RtcVideoEncodeParams
@end
/// 屏幕分享配置参数
@interface BRTCScreenShareParams : NSObject<NSCopying>
/// 是否分享系统音频流分享
@property (nonatomic, assign) BOOL enableAudioCapture;
/// 音频流配置参数
@property (nonatomic, copy) BRTCScreenShareAudioParams *audioCaptureParams;
/// 是否分享系统屏幕视频流
@property (nonatomic, assign) BOOL enableVideoCapture;
/// 屏幕视频流配置参数
@property (nonatomic, copy) BRTCScreenShareVideoParams *videoCaptureParams;
@end
返回
int 参数更新结果。0 成功; -1 当前没有在进行屏幕分享
屏幕分享开始回调
- (void)onShareScreenStartComplete:(int)errCode;
开启屏幕分享的结果回调。当您通过 startShareAppScreen, startShareSystemScreen 等方法启动屏幕分享能力后,会回调该事件
参数
参数 | 类型 | 描述 |
---|---|---|
errCode | int | 开启屏幕分享的结果,0: 开启成功; 1: rtc 当前不可用; 2: 系统录屏功能当前不可用; 3: 系统版本不支持; |
返回
无
屏幕分享结束回调
- (void)onShareScreenStopped:(int)reason;
本地屏幕分享已停止。在屏幕分享过程中,当您通过 stopShareScreen, logoutRtcRoom 等方法停止屏幕分享后,会回调该事件
参数
参数 | 类型 | 描述 |
---|---|---|
reason | int | 停止原因。 0: 用户调用接口主动停止 |
返回
无
系统屏幕分享扩展
系统屏幕分享需要基于 iOS 系统的 App Extension 机制实现,主 App 通过集成 Broadcast Setup Extension,使系统屏幕录制音视频数据可以回调到和主 App 关联的 扩展进程 中。
在扩展进程中,需要通过以下类和接口进行对接
屏幕分享扩展类
BaiduRtcRoomReplayKitExt
+ (instancetype)sharedInstance;
/// 以下方法和 Broadcast Setup Extension 的 RPBroadcastSampleHandler 方法一一对应,需要在其中调用这些方法
- (void)broadcastStartedWithAppGroup:(NSString *)appGroup delegate:(id<BaiduRtcRoomReplayKitExtDelegate>)delegate;
- (void)broadcastPaused;
- (void)broadcastResumed;
- (void)broadcastFinished;
- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer bufferType:(RPSampleBufferType)buferType;
屏幕分享扩展停止回调
- (void)replayKitScreenShareStopped:(BaiduRtcRoomReplayKitExt *)replayKit reason:(BaiduRtcReplayKitStopReason)reason;
屏幕分享扩展进程停止回调。在系统屏幕分享过程中,当通过系统控制、主 App 停止分享、主 App 退出房间等行为停止分享,会在扩展中回调该方法
参数
参数 | 类型 | 描述 |
---|---|---|
replayKit | BaiduRtcRoomReplayKitExt * | 系统屏幕分享扩展类对象 |
reason | BaiduRtcReplayKitStopReason | 系统屏幕分享停止原因,具体定义参考 BaiduRtcRoomReplayKitExt.h |
返回
无
屏幕分享扩展鉴权代理
- (void)replayKitGetRtcTokenWithAppId:(NSString *)appId
roomName:(NSString *)roomName
userId:(NSInteger)userId
completion:(void (^)(NSString *tokenStr))completin;
如果接入 BRTC 的业务开启了业务鉴权,那么在登录房间的过程中,需要使用业务生成的 token 值。该扩展回调为系统屏幕分享进程的用户提供了业务鉴权对接能力,
在对接系统屏幕分享时,如果开启了业务鉴权,则需要实现该方法,并在 completion 中回调 token 值;如果没有开启业务鉴权,需要在 completion 中回调一个任意内容的非空字符串作为 token。
参数
参数 | 类型 | 描述 |
---|---|---|
appId | NSString * | 用于生成鉴权 token 的业务 appid |
roomName | NSString * | 用于生成鉴权 token 的房间号 |
userId | NSInteger | 用于生成鉴权 token 的用户名 |
completin | void (^)(NSString *tokenStr) | 用于给扩展类返回生成 token 值的回调 |
返回
无
美颜相关接口
使用 BRTC 美颜能力,需要同时集成 BaiduRtcBeauty.framework 扩展模块
获取美颜管理类实例
- (id<BaiduRtcBeautyManager>)getRtcBeautyManager;
获取 BRTC 内部音频处理管理类,用于控制 变声音效、背景音效 等音频处理效果。
参数
无
返回
当前 BRTC 实例对应的美颜管理类实例。
在调用该接口之前,需要通过 setParamSettings:paramType: 接口设置 enableBeauty = YES 以开启对应能力,否则该接口返回 nil。
开启采集视频美颜效果
- (void)setBeautyEnabled:(BOOL)enabled;
开关整体美颜效果。该接口用于临时开关美颜效果,关闭前对美颜的设置不会丢失
该接口定义在 BaiduRtcBeautyManager 扩展协议中。
参数
参数 | 类型 | 描述 |
---|---|---|
enabled | BOOL | enabled 是否开启 |
返回
无
设置采集视频美颜效果参数
- (void)setBeautyFeature:(RtcBeautyFeatureType)featureType value:(NSObject *)value;
美颜塑形等能力通用调参接口。具体效果类型 RtcBeautyFeatureType 参考 BaiduRtcAudioProcessManager.h 中的定义。
该接口定义在 BaiduRtcBeautyManager 扩展协议中。
参数
参数 | 类型 | 描述 |
---|---|---|
type | RtcBeautyFeatureType | 美颜效果类型 |
value | NSObject * | 美颜效果的设置值 |
返回
无
美颜特效参数模型
BRTCEffectParams
参数
参数 | 类型 | 描述 |
---|---|---|
resourcePath | NSString * | 特效资源地址。传入资源 case 文件地址,内部加载对应 case bundle 文件实现如 背景分割 等特效 |
resourceId | NSString * | 特效资源 Id |
设置虚拟背景
- (void)setHumanSegEnabled:(BOOL)enabled effectParams:(BRTCEffectParams * _Nullable)params;
开关虚拟背景效果,设置虚拟背景效果参数。
该接口定义在 BaiduRtcBeautyManager 扩展协议中。
参数
参数 | 类型 | 描述 |
---|---|---|
enabled | BOOL | 是否开启 |
params | BRTCEffectParams * | 虚拟背景对应特效参数,传入虚拟背景资源地址 |
返回
无
设置外部自定义视频前处理器
- (void)setVideoProcessor:(BaiduRtcVideoProcessor *)processor;
设置外部自定义相机流编码前处理节点。
若使用 BRTC 自带的相机采集器,则可以通过该方法进行自定义前处理行为;
若已经通过 setMediaCapturer: 设置了 自定义采集器,既可以通过该方法进行自定义前处理,也可以在 自定义采集器 内部执行完前处理,再将数据输出到回调
参数
参数 | 类型 | 描述 |
---|---|---|
processor | BaiduRtcVideoProcessor * | 外部自定义视频前处理器 |
返回
无
说明
关于如何实现一个 BaiduRtcVideoProcessor,可参考 RTCVideoBufferNode.h 中的定义进行。
音频处理相关接口
使用 BRTC 音频处理相关接口,需要同时集成 BaiduRtcAudioProcess.framework 扩展模块
获取音频处理管理类实例
- (id<BaiduRtcAudioProcessManager>)getRtcAudioProcessManager;
获取 BRTC 内部音频处理管理类,用于控制 变声音效、背景音效 等音频处理效果。
参数
无
返回
当前 BRTC 实例对应的音频处理管理类实例。
在调用该接口之前,需要通过 setParamSettings:paramType: 接口设置 enableAudioProcess = YES 以开启对应能力,否则该接口返回 nil。
开启采集音频变声效果
- (void)setVoiceChangeEnabled:(BOOL)enabled;
开关整体变声音效。该接口用于临时开关变声音效,关闭前设置的变声效果类型不会丢失
该接口定义在 BaiduRtcAudioProcessManager 扩展协议中。
参数
参数 | 类型 | 描述 |
---|---|---|
enabled | BOOL | enabled 是否开启 |
返回
无
设置采集音频变声效果
- (void)setVoiceChangeType:(RtcVoiceChangeType)type;
设置变声效果类型。具体类型枚举参考 BaiduRtcAudioProcessManager.h 中的定义。
该接口定义在 BaiduRtcAudioProcessManager 扩展协议中。
参数
参数 | 类型 | 描述 |
---|---|---|
type | RtcVoiceChangeType | 变声效果类型 |
返回
无
视频处理相关接口
使用 BRTC 视频处理相关接口,需要同时集成 BaiduRtcVideoProcess.framework 扩展模块
获取视频处理管理类实例
- (id<BaiduRtcVideoProcessManager>)getRtcVideoProcessManager;
获取 BRTC 的视频处理管理类,用于处理水印功能。 该接口定义在BaiduRtcRoomApi.h中定义。
参数
无
返回
当前 BRTC 实例对应的视频处理管理类实例。
在调用该接口之前,需要通过 setParamSettings:paramType: 接口设置 enableVideoProcess = YES 以开启对应能力,否则该接口返回 nil。
开启水印
- (void)enableWatermark:(BOOL)enable watermarkParams:(BRTCWatermarkParams *)watermarkParams;
设置是否开启水印,水印参数配置。 该接口定义在BaiduRtcVideoProcessManager.h中定义。
参数
参数 | 类型 | 描述 |
---|---|---|
enable | BOOL | enable 是否开启 |
watermarkParams | BRTCWatermarkParams * | 水印参数 |
返回
无
音视频录制相关接口
获取视音视频录制管理类实例
- (BRTCMediaRecorder *)getRtcMediaRecorder;
获取 BRTC 内部音视频录制管理类,用于录制本音视频或进行本地与远端音视频的混流录制。
该接口定义在BaiduRtcRoomApi.h中定义。
参数
无
返回
当前 BRTC 实例对应的音视频录制实例。
设置录制回调代理
- (void)setMediaRecorderDelegate:(id<BRTCMediaRecorderDelegaate>)delegate;
设置录制回调代理,可通过代理方法查看录制状态,录制信息等。 该接口定义在BRTCMediaRecorder.h中定义。
参数
参数 | 类型 | 描述 |
---|---|---|
delegate | id |
录制回调对象 |
返回
无
音视频录制参数模型
BRTCMediaRecordParam
参数
参数 | 类型 | 描述 |
---|---|---|
type | BRTCMediaRecorderType | 录制内容:本地仅音频、本地仅视频、本地音视频、混流仅音频、混流仅视频、混流音视频 |
mixType | BRTCMediaMixType | 混流录制布局,详细说明 |
audioParam | BRTCAudioRecordParam * | 音频参数配置 |
videoParam | BRTCVideoRecordParam * | 视频参数配置 |
savePath | NSString * | 录制存储路径 |
format | BRTCMediaRecorderContainerFormat | 存储形式:aac:音频 mp4:视频/音视频 |
maxDurationMs | NSInteger | 最大录制时长,单位为毫秒,默认值为 120000。 |
recorderInfoUpdateInterval | NSInteger | 录制信息更新间隔,单位为毫秒,取值范围为 [1000,10000]。SDK 会根据设置值触发 informationDidUpdated 回调,报告更新的录制信息。 |
BRTCMediaRecorderType
枚举
typedef NS_ENUM (NSInteger, BRTCMediaRecorderType) {
BRTCMediaRecorderTypeAudio, ///< 本地录制 - 仅音频
BRTCMediaRecorderTypeVideo, ///< 本地录制 - 仅视频
BRTCMediaRecorderTypeBoth, ///< 本地录制 - 音视频
BRTCMediaRecorderTypeMixAudio, ///< 混流录制 - 仅音频
BRTCMediaRecorderTypeMixVideo, ///< 混流录制 - 仅视频
BRTCMediaRecorderTypeMixBoth, ///< 混流录制 - 音视频
};
BRTCMediaMixType
枚举
typedef NS_ENUM(NSInteger, BRTCMediaMixType) {
/// 画中画:远端第一路视频是大画面,其余视频流是子画面,悬浮于画布底部从右到左依次平铺,高宽为画布 1/5,子画面内容适配填充。
BRTCMediaMixTypePip,
/// 主次平铺:远端第一路视频是大画面,高和画布相同,宽为画布 4/5。其余视频流是子画面,垂直排列于画布右侧从上到下依次平铺,高宽为画布 1/5,子画面内容适配填充。
BRTCMediaMixTypePas,
/// 平铺:本地视频和远端视频按从左到右从上到下按宫格形式依次平铺,高宽均分。
BRTCMediaMixTypeTile,
};
BRTCAudioRecordParam
参数
参数 | 类型 | 描述 |
---|---|---|
numberOfChannel | int | 录制文件的音频声道数 |
sampleRate | int | 录制文件的音频采样率 |
audioBitrate | int | 录制文件的音频码率,kbps |
BRTCVideoRecordParam
参数
参数 | 类型 | 描述 |
---|---|---|
videoFps | int | 录制文件的视频帧率 |
videoWidth | int | 录制文件的视频宽度 |
videoHeight | int | 录制文件的视频高度 |
videoBitrate | int | 录制文件的视频码率,kbps |
开始录制
- (int)startRecordWithParam:(BRTCMediaRecordParam *)param;
开始录制音视频,可录制媒体内容为本地或混流、类型为仅音频、仅视频 或 音视频。
该接口定义在BRTCMediaRecorder.h中定义。
使用混流录制,需要同时集成 BaiduRtcVideoProcess.framework 扩展模块,
并通过 setParamSettings:paramType: 接口设置 enableVideoProcess = YES 启用扩展模块。
混流最多展示6路媒体流。
参数
参数 | 类型 | 描述 |
---|---|---|
param | BRTCMediaRecordParam * | 录制参数配置 |
返回
开始录制的状态结果,0表示开始录制成功,其他表示失败。 具体可查看BRTCMediaRecorderErrorCode,也可通过代理回调查看。
停止录制
- (int)stopRecord;
停止录制,停止录制成功,可通过配置的路径查看录制的内容。
参数
无
返回
停止录制的状态结果,0表示停止录制成功,其他表示失败。 具体可查看BRTCMediaRecorderErrorCode,也可通过代理回调查看。
音乐文件播放相关接口
使用 BRTC 音乐文件播放相关接口,需要同时集成 BaiduRtcAudioProcess.framework 扩展模块
获取音乐文件播放管理对象
- (id<BaiduRtcAudioProcessManager>)getRtcAudioProcessManager;
获取 BRTC 内部音频处理管理类,用于控制 变声音效、背景音效 等音频处理效果。此接口在BaiduRtcRoomApi.h中定义。
参数
无
返回
当前 BRTC 实例对应的音频处理管理类实例。
在调用该接口之前,需要通过 setParamSettings:paramType: 接口设置 enableAudioProcess = YES 以开启对应能力,否则该接口返回 nil。
设置音乐文件播放状态代理
- (void)setAudioProcessDelegate:(id<BaiduRtcAudioProcessDelegate>)delegate;
设置音频处理回调代理。此接口在BaiduRtcAudioProcessManager.h中定义。
参数
参数 | 类型 | 描述 |
---|---|---|
delegate | id<BaiduRtcAudioProcessDelegate> | 遵循 BaiduRtcAudioProcessDelegate 协议的代理对象 |
返回
无
开始音乐文件播放混音
- (int)startAudioMixing:(BRTCAudioMixingParams *)params;
开始音乐文件播放混音。
参数
参数 | 类型 | 描述 |
---|---|---|
params | BRTCAudioMixingParams * | 音乐文件混音参数 |
BRTCAudioMixingParams对象参数
参数
参数 | 类型 | 描述 |
---|---|---|
filePath | NSString * | 本地音乐文件路径 |
loopback | BOOL | 是否只在本地播放音乐文件,YES 表示仅本地播放,NO 表示播放同时将音乐文件混音推流,默认 YES。 |
cycle | NSInteger | 音乐文件播放次数,≥ 0 表示次数,-1 表示不限制,默认 -1。 |
返回
调用方法返回的结果,0表示调用开始播放方法成功,其他表示失败。
暂停音乐文件播放混音
- (int)pauseAudioMixing;
暂停音乐文件播放混音。
参数
无
返回
调用方法返回的结果,0表示调用暂停播放方法成功,其他表示失败。
恢复音乐文件播放混音
- (int)resumeAudioMixing;
恢复音乐文件播放混音。
参数
无
返回
调用方法返回的结果,0表示调用恢复播放方法成功,其他表示失败。
停止音乐文件播放混音
- (int)stopAudioMixing;
停止音乐文件播放混音。
参数
无
返回
调用方法返回的结果,0表示调用停止播放方法成功,其他表示失败。
其他接口
获取SDK版本号
+ (NSString *)version;
获取 iOS SDK 版本号。
参数
无
返回
返回当前版本号
开启/关闭调试信息输出
+ (void)setVerbose:(BOOL)bOnVerbose;
是否打开调试信息。
建议在初始化 SDK 前调用。建议在调试阶段打开此开关,方便调试。
参数
参数 | 类型 | 描述 |
---|---|---|
bOnVerbose | BOOL | 是否打开调试信息,true 打开,false 不打开。默认为 false |
返回
无
查询RTC统计信息
- (NSArray *)queryEngineStatisticsInfo;
查询RTC统计信息。 如CPU, FPS,video codec等
参数
无
返回
NSArray* rtc 状态统计信息
开启/关闭RTC质量监控数据上报
- (void)enableStatsToServer:(BOOL)isEnable qualityMonitorEnv:(NSString *)qualityMonitorEnv;
RTC质量监控数据上报。
预置接口,监控信息上报开关 当打开开关时,上报帧率、码率、分辨率、丢包率等监控信息到服务端,console可查。
参数
参数 | 类型 | 描述 |
---|---|---|
isEnable | BOOL | 是否打开rtc质量监控数据上报,true 打开,false不打开。默认为 false |
qualityMonitorEnv | NSString* | 线上环境:"online" 沙盒:"qa"。 默认值为 "online" |
返回
无
开启/关闭RTC异常信息上报
- (void)enableErrorInfoReprot:(BOOL)enableErrorInfoReport;
RTC异常信息上报开关。
上报异常信息,方便问题排查
参数
参数 | 类型 | 描述 |
---|---|---|
enableErrorInfoReport | BOOL | enableErrorInfoReport 是否打开上报开关 true 开启上报, false 关闭上报。默认公网域名开启上报 |
返回
无
白板
创建对象
// 获取白板对象
+ (instancetype)sharedManager;
// 设置回调
- (void)setBaiduRtcBoardDelegate:(id<BaiduRtcBoardDelegate>)delegate;
白板登录
@interface BoardLoginParam : NSObject
/// 房间名
@property (nonatomic, copy) NSString *channelName;
/// app key
@property (nonatomic, copy) NSString *appId;
/// app secret
@property (nonatomic, copy) NSString *token;
/// uid
@property (nonatomic, assign) NSUInteger uid;
/// 是否开启 web 调试日志
@property (nonatomic, assign) BOOL debug;
/// 是否开启观众模式
@property (nonatomic, assign) BOOL audience;
@end
// 登录白板
- (void)callWebLoginWithParam:(BoardLoginParam *)param;
登录白板房间
设置画笔
// 设置画笔类型 自由画笔、直线、剪头、椭圆、菱形、矩形、文本、激光笔等
- (void)setToolType:(RtcBoardToolType)type;
// 设置画笔颜色
- (void)setBrushColor:(UIColor *)color;
清除白板
// 清除白板
- (void)clear;
通话前测速相关
Lastmile初始化
- (instancetype)initProbeTest:(NSString *)appId
tokenStr:(NSString *)tokenStr
uplinkBitrate:(int)uplinkBitrate
downlinkBitrate:(int)downlinkBitrate
delegate:(id<BaiduRtcLastmileDelegate>)delegate;
Lastmile初始化。
初始化Lastmile并创建网络测速实例 初始化网络测速时调用,初始化网络测速失败会导致网络测速功能异常。
参数
参数 | 类型 | 描述 |
---|---|---|
appId | NSString | 百度为用户App签发的App ID, 用于识别应用, 全局唯一,详见创建应用。 |
tokenStr | NSString | 百度智能云RTC服务端鉴权使用的密钥,可缺省,使用应用鉴权可使得服务更加安全。 详见应用鉴权。 |
uplinkBitrate | int | 用户期望的最高发送码率,单位为bps,范围为100000~5000000。 |
downlinkBitrate | int | 用户期望的最高接收码率,单位为bps,范围为100000~5000000。 |
delegate | BaiduRtcLastmileDelegate | 遵循BaiduRtcLastmileDelegate协议的代理对象 。 |
返回
返回Lastmile实例,nil 表示初始化失败
Lastmile结束
- (void)stopProbeTest;
结束网络探测, 可以在网络探测回调函数lastmileProbeTestResult中调用, 也可以手动触发结束。
BaiduRtcLastmileDelegate代理对象
- (void)rtcLastmile:(BaiduRtcLastmile *)lastmile lastmileProbeTestResult:(RtcLastmileResult *)result;
参数
参数 | 类型 | 描述 |
---|---|---|
lastmile | BaiduRtcLastmile | Lastmile实例 |
result | lastmileProbeTestResult | 开始通话前网络质量探测,向用户反馈上下行网络的带宽,丢包,网络抖动和往返时延数据。 |
RtcLastmileResult对象参数
参数
参数 | 类型 | 描述 |
---|---|---|
state | RtcLastmileResultState | 网络探测状态, 参考RtcLastmileResultState。 |
rtt | NSUInteger | 网络探测往返平均延时, 单位(ms)。 |
quality | NSUInteger | 探测网络质量, 参考RtcLastmileQuality。 |
uplinkReport | RtcLastmileOneWayResult | 上行网络探测质量。 |
downlinkReport | RtcLastmileOneWayResult | 下行网络探测质量。 |
RtcLastmileOneWayResult对象参数
参数
参数 | 类型 | 描述 |
---|---|---|
lossRate | NSUInteger | 探测的网络丢包率。 |
jitter | NSUInteger | 探测的网络抖动, 单位(ms)。 |
bandwidth | NSUInteger | 探测的网络带宽, 单位(Kbps)。 |
RtcLastmileResultState 状态定义
状态 | 值 | 含义 |
---|---|---|
RtcLastmileResultComplete | 1 | 本次质量探测是完整的 |
RtcLastmileResultIncompleteNoBwe | 2 | 本次质量探测未进行带宽预测,因此结果不完整 |
RtcLastmileResultUnavailable | 3 | 未进行质量探测。一个可能的原因是网络连接中断 |
RtcLastmileQuality 质量定义
状态 | 值 | 含义 |
---|---|---|
RtcLastmileQualityUnknown | 0 | 质量未知 |
RtcLastmileQualityExcellent | 1 | 质量极好 |
RtcLastmileQualityGood | 2 | 用户主观感觉和极好差不多,但码率可能略低于极好 |
RtcLastmileQualityPoor | 3 | 用户主观感受有瑕疵但不影响沟通 |
RtcLastmileQualityBad | 4 | 勉强能沟通但不顺畅 |
RtcLastmileQualityVBad | 5 | 网络质量非常差,基本不能沟通 |
RtcLastmileQualityDown | 6 | 完全无法沟通 |
RtcLastmileQualityDetecting | 8 | SDK正在探测网络质量 |