TUICallEngine
TUICallEngine API 简介
TUICallEngine API 是音视频通话组件的无 UI 接口,如果 TUICallKit 的交互并不满足您的需求,您可以使用这套接口自己封装交互。
API 概览
API | 描述 |
创建 TUICallEngine 实例(单例模式) | |
销毁 TUICallEngine 实例(单例模式) | |
完成音视频通话基础能力的鉴权 | |
增加事件回调 | |
移除回调接口 | |
发起 1v1 通话 | |
发起群组通话 | |
接听通话 | |
拒绝通话 | |
结束通话 | |
忽略通话 | |
在群组通话中,邀请其他人加入 | |
主动加入当前的群组通话中 | |
切换通话媒体类型,比如视频通话切音频通话 | |
开始订阅远端用户视频流 | |
停止订阅远端用户视频流 | |
开启摄像头 | |
关闭摄像头 | |
切换前后摄像头 | |
打开麦克风 | |
关闭麦克风 | |
选择音频播放设备(听筒/扬声器) | |
设置用户的昵称、头像 | |
设置用户视频画面的渲染模式 | |
设置视频编码的编码参数 | |
高级接口,用于接入第三方美颜等 | |
设置美颜级别,支持关闭默认美颜 |
API 详情
createInstance
创建 TUICallEngine 的单例。
- (TUICallEngine *)createInstance;
destroyInstance
销毁 TUICallEngine 的单例。
- (void)destroyInstance;
init
初始化函数,请在使用所有功能之前先调用该函数,以便完成包含通话服务鉴权在内初始化动作。
- (void)init:(NSString *)sdkAppID userId:(NSString *)userId userSig:(NSString *)userSig succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数如下表所示:
参数 | 类型 | 含义 |
sdkAppID | int | 您可以在实时音视频控制台 >应用管理 > 应用信息中查看 SDKAppID |
userId | NSString | 当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_) |
userSig | NSString |
addObserver
- (void)addObserver:(id<TUICallObserver>)observer;
removeObserver
移除回调接口。
- (void)removeObserver:(id<TUICallObserver>)observer;
call
拨打电话(1v1通话)。
注意:
字符串房间号目前只支持 Android 和 iOS 平台,Web、小程序、Flutter、Uniapp 等其他平台后续支持,敬请期待!
- (void)call:(NSString *)userId callMediaType:(TUICallMediaType)callMediaType params:(TUICallParams *)params succ:(TUICallSucc)succ fail:(TUICallFail)fail
参数如下表所示:
参数 | 类型 | 含义 |
userId | NSString | 目标用户的 userId |
callMediaType | 通话的媒体类型,比如视频通话、语音通话 | |
params | 通话参数扩展字段,例如:房间号、通话邀请超时时间,离线推送自定义内容等 |
groupCall
发起群组通话。
注意:
使用群组通话前需要创建 IM 群组,如果已经创建,请忽略;
字符串房间号目前只支持 Android 和 iOS 平台,Web、小程序、Flutter、Uniapp 等其他平台后续支持,敬请期待!
- (void)groupCall:(NSString *)groupId userIdList:(NSArray <NSString *> *)userIdList callMediaType:(TUICallMediaType)callMediaType params:(TUICallParams *)params succ:(TUICallSucc)succ fail:(TUICallFail)fail
参数 | 类型 | 含义 |
groupId | NSString | 此次群组通话的群 ID |
userIdList | NSArray | 目标用户的 userId 列表 |
callMediaType | 通话的媒体类型,比如视频通话、语音通话 | |
params | 通话参数扩展字段,例如:房间号、通话邀请超时时间,离线推送自定义内容等 |
accept
接受当前通话,当您作为被叫收到
onCallReceived()
的回调时,可以调用该函数接听来电。- (void)accept:(TUICallSucc)succ fail:(TUICallFail)fail;
reject
拒绝当前通话,当您作为被叫收到
onCallReceived()
的回调时,可以调用该函数拒绝来电。- (void)reject:(TUICallSucc)succ fail:(TUICallFail)fail;
ignore
忽略当前通话,当您作为被叫收到
onCallReceived()
的回调时,可以调用该函数忽略来电,此时主叫会收到onUserLineBusy
的回调。
备注:如果您的业务中存在直播、会议等场景,在直播/会议中的情况时,也可以调用这个函数来忽略此次来电。- (void)ignore:(TUICallSucc)succ fail:(TUICallFail)fail;
hangup
挂断当前通话,当您处于通话中,可以调用该函数结束通话。
- (void)hangup:(TUICallSucc)succ fail:(TUICallFail)fail;
inviteUser
邀请用户加入此次群组通话。
使用场景:一个群组通话中的用户主动邀请其他人时使用。
- (void)inviteUser:(NSArray<NSString *> *)userIdList params:(TUICallParams *)params succ:(void(^)(NSArray <NSString *> *userIdList))succ fail:(TUICallFail)fail
参数 | 类型 | 含义 |
userIdList | NSArray | 目标用户的 userId 列表 |
params | 通话参数扩展字段,例如:离线推送自定义内容 |
joinInGroupCall
主动加入此次群组通话。
使用场景:群组内用户主动加入此次群组通话使用。
- (void)joinInGroupCall:(TUIRoomId *)roomId groupId:(NSString *)groupId callMediaType:(TUICallMediaType)callMediaType succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数 | 类型 | 含义 |
roomId | 此次通话的音视频房间 ID,目前仅支持数字房间号,后续版本会支持字符串房间号 | |
groupId | NSString | 此次群组通话的群 ID |
callMediaType | 通话的媒体类型,比如视频通话、语音通话 |
switchCallMediaType
切换视频通话到语音通话。
- (void)switchCallMediaType:(TUICallMediaType)newType;
参数 | 类型 | 含义 |
callMediaType | 通话的媒体类型,比如视频通话、语音通话 |
startRemoteView
设置显示视频画面的 View 对象。
- (void)startRemoteView:(NSString *)userId videoView:(TUIVideoView *)videoView onPlaying:(void(^)(NSString *userId))onPlaying onLoading:(void(^)(NSString *userId))onLoading onError:(void(^)(NSString *userId, int code, NSString *errMsg))onError;
参数 | 类型 | 含义 |
userId | NSString | 目标用户的 userId |
videoView | TUIVideoView | 待渲染的视图 |
stopRemoteview
停止订阅远端用户的视频数据。
- (void)stopRemoteView:(NSString *)userId;
参数 | 类型 | 含义 |
userId | NSString | 目标用户的 userId |
openCamera
开启摄像头。
- (void)openCamera:(TUICamera)camera videoView:(TUIVideoView *)videoView succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数 | 类型 | 含义 |
camera | 前置/后置 摄像头 | |
videoView | TUIVideoView | 待渲染的视图 |
closeCamera
关闭摄像头。
- (void)closeCamera;
switchCamera
切换前后摄像头。
- (void)switchCamera:(TUICamera)camera;
参数 | 类型 | 含义 |
camera | 前置/后置 摄像头 |
openMicrophone
打开麦克风。
- (void)openMicrophone:(TUICallSucc)succ fail:(TUICallFail)fail;
closeMicrophone
关闭麦克风。
- (void)closeMicrophone;
selectAudioPlaybackDevice
选择音频播放设备。
目前支持听筒、扬声器,在通话场景中,可以使用这个接口来开启/关闭免提模式。
- (void)selectAudioPlaybackDevice:(TUIAudioPlaybackDevice)device;
参数 | 类型 | 含义 |
device | 听筒/扬声器 |
setSelfInfo
设置用户昵称、头像。
用户昵称不能超过500字节,用户头像必须是 URL 格式。
- (void)setSelfInfo:(NSString * _Nullable)nickname avatar:(NSString * _Nullable)avatar succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数 | 类型 | 含义 |
nickname | NSString | 用户昵称 |
avatar | NSString | 用户头像(格式为 URL) |
enableMultiDeviceAbility
- (void)enableMultiDeviceAbility:(BOOL)enable succ:(TUICallSucc)succ fail:(TUICallFail)fail;
setVideoRenderParams
设置用户视频画面的渲染模式。
- (void)setVideoRenderParams:(NSString *)userId params:(TUIVideoRenderParams *)params succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数如下表所示:
参数 | 类型 | 含义 |
userId | NSString | 目标用户的 userId |
params | 视频画面渲染参数,例如:画面旋转角度、填充模式 |
setVideoEncoderParams
设置视频编码的编码参数。
该设置能够决定远端用户看到的画面质量,同时也能决定云端录制出的视频文件的画面质量。
- (void)setVideoEncoderParams:(TUIVideoEncoderParams *)params succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数如下表所示:
参数 | 类型 | 含义 |
params | 视频编码的参数,例如:分辨率、视频宽高比 |
getTRTCCloudInstance
高级接口。
用于接入第三方美颜等。
- (TRTCCloud *)getTRTCCloudInstance;
setBeautyLevel
设置美颜级别,支持关闭默认美颜。
- (void)setBeautyLevel:(CGFloat)level succ:(TUICallSucc)succ fail:(TUICallFail)fail;
参数如下表所示:
参数 | 类型 | 含义 |
level | CGFloat | 美颜级别,美颜级别,取值范围 0 - 9; 0 表示关闭,9 表示效果最明显 |
- TUICallEngine API 简介
- API 概览
- API 详情
- createInstance
- destroyInstance
- init
- addObserver
- removeObserver
- call
- groupCall
- accept
- reject
- ignore
- hangup
- inviteUser
- joinInGroupCall
- switchCallMediaType
- startRemoteView
- stopRemoteview
- openCamera
- closeCamera
- switchCamera
- openMicrophone
- closeMicrophone
- selectAudioPlaybackDevice
- setSelfInfo
- enableMultiDeviceAbility
- setVideoRenderParams
- setVideoEncoderParams
- getTRTCCloudInstance