TUICalling 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的,支持1v1和多人视频通话。TUICalling 是一个开源的 Class,依赖腾讯云的两个闭源 SDK,具体的实现过程请参见 实时视频通话(iOS)。
说明:TUIKit 系列组件同时使用了腾讯云 实时音视频 TRTC 和 即时通信 IM 两个基础 PaaS 服务,开通实时音视频后会同步开通即时通信IM服务。即时通信 IM 服务详细计费规则请参见 即时通信 - 价格说明,TRTC 开通会默认关联开通 IM SDK 的体验版,仅支持100个 DAU。
TUICalling API 概览
SDK 基础函数
API | 描述 |
---|---|
sharedInstance | 组件单例。 |
call | C2C 邀请通话。 |
setCallingListener | 设置监听器。 |
setCallingBell | 设置铃声(建议在30s以内) |
enableMuteMode | 开启静音模式 |
enableCustomViewRoute | 开启自定义视图 |
TUICallingListener API 概览
事件回调
API | 描述 |
---|---|
shouldShowOnCallView | 被叫时请求拉起接听页面 |
onCallStart | 呼叫开始回调。主叫、被叫均会触发 |
onCallEnd | 通话回调。主叫、被叫均会触发 |
onCallEvent | 通话事件回调 |
Type API 概览
通话类型
enum | 描述 |
---|---|
TUICallingTypeAudio | 音频通话 |
TUICallingTypeVideo | 视频通话 |
Role API 概览
用户角色类型
enum | 描述 |
---|---|
TUICallingRoleCall | 通话发起方(主叫) |
TTUICallingRoleCalled | 通话接听方(被叫) |
Event API 概览
事件类型
enum | 描述 |
---|---|
TUICallingEventCallStart | 通话开始 |
TUICallingEventCallSucceed | 通话接通成功 |
TUICallingEventCallEnd | 通话结束 |
TUICallingEventCallFailed | 通话失败 |
SDK 基础函数
sharedInstance
sharedInstance 是 TUICallingManager 的组件单例。
+ (instancetype)shareInstance;
call
C2C 邀请通话。
- (void)call:(NSArray<NSString *> *)userIDs type:(TUICallingType)type;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userIDs | NSArray | 通话用户 ID 列表 |
type | TUICallingType | 通话类型:音频/视频 |
setCallingListener
设置监听器。
- (void)setCallingListener:(id<TUICallingListerner>)listener;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
listener | TUICallingListener | TUIcalling 组件监听器 |
setCallingBell
设置铃声(建议在30s以内)。
- (void)setCallingBell:(NSString *)filePath;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
filePath | NSString | 铃音资源路径 |
enableMuteMode
开启静音模式。
- (void)enableMuteMode:(BOOL)enable;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
enable | BOOL | 是否开启静音模式 |
enableCustomViewRoute
开启自定义视图。
开启后,会在呼叫/被叫开始回调中,接收到 CallingViewController 的实例,由开发者自行决定展示方式。
注意:必须全屏展示,否则会有展示异常。
- (void)enableCustomViewRoute:(BOOL)enable;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
enable | BOOL | 是否开启自定义视图 |
TUICallingListener 回调函数
shouldShowOnCallView
是否同意被叫时请求拉起接听页面。
- (BOOL)shouldShowOnCallView;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
返回值 | BOOL | 是否同意 |
onCallStart
呼叫开始回调。主叫、被叫均会触发。
- (void)callStart:(NSArray<NSString *> *)userIDs type:(TUICallingType)type role:(TUICallingRole)role viewController:(UIViewController * _Nullable)viewController;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userIDs | NSArray | 通话用户 ID 列表 |
type | TUICallingType | 通话类型:音频/视频 |
role | TUICallingRole | 用户角色类型:主叫/被叫 |
viewController | UIViewController | 通话视图 ViewController |
onCallEnd
通话结束回调。主叫、被叫均会触发。enableCustomViewRoute 设置为 NO 时,此回调方法不会触发。
- (void)callEnd:(NSArray<NSString *> *)userIDs type:(TUICallingType)type role:(TUICallingRole)role totalTime:(CGFloat)totalTime;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
userIDs | NSArray | 通话用户 ID 列表 |
type | TUICallingType | 通话类型:音频/视频 |
role | TUICallingRole | 用户角色类型:主叫/被叫 |
totalTime | CGFloat | 通话时长,单位:秒 |
onCallEvent
通话事件回调。enableCustomViewRoute 设置为 NO 时,此回调方法不会触发。
- (void)onCallEvent:(TUICallingEvent)event type:(TUICallingType)type role:(TUICallingRole)role message:(NSString *)message;
参数如下表所示:
参数 | 类型 | 含义 |
---|---|---|
event | TUICallingEvent | 通话事件类型。 |
type | TUICallingType | 通话类型:音频/视频 |
role | TUICallingRole | 用户角色类型:主叫/被叫 |
message | NSString | 事件的描述信息 |