腾讯云音视频通话SDKiOS_音视频解决方案_同尘科技
开发环境要求
Xcode 10 及以上iOS 9.0 及以上
CocoaPods 集成
TUIKit 从 5.7.1435 版本开始支持模块化集成,您可以根据自己的需求选择所需模块集成。1. 根据实际业务需求在 Podfile 中添加对应的 TUI 组件,比如需要聊天功能,可以添加pod 'TUIChat'
;需要会话列表功能,可以添加 pod 'TUIConversation'
;需要音视频通话功能,可以添加pod 'TUICallKit'
。TUI 组件之间相互独立,添加或删除均不影响工程编译。
# 防止 TUI 组件里的
*
.
xcassets 与您项目里面冲突。
install
!
'cocoapods'
,
:
disable_input_output_paths
=
>
true
# TUI 组件依赖了静态库,需要屏蔽如下设置,如果报错,请参考常见问题说明。
# use_frameworks!
# 集成聊天功能
pod
'TUIChat'
# 集成会话功能
pod
'TUIConversation'
# 集成关系链功能
pod
'TUIContact'
# 集成群组功能
pod
'TUIGroup'
# 集成搜索功能(需要购买旗舰版套餐)
pod
'TUISearch'
# 集成音视频通话功能
pod
'TUICallKit'
2. 执行以下命令,安装 TUI 组件。
pod install
如果无法安装 TUIKit 最新版本,执行以下命令更新本地的 CocoaPods 仓库列表。
pod repo update
TUI 组件集成后效果:
快速搭建
常用的聊天软件都是由会话列表、聊天窗口、好友列表、音视频通话等几个基本的界面组成,参考下面步骤,您仅需几行代码即可在项目中快速搭建这些 UI 界面。
步骤一:组件登录
#import "TUILogin.h"// 您可以在用户 UI 点击登录的时候登录 UI 组件- (void)loginSDK:(NSString *)userID userSig:(NSString *)sig succ:(TSucc)succ fail:(TFail)fail { // SDKAppID 可以在 即时通信 IM 控制台中获取 // userSig生成见 GenerateTestUserSig.h [TUILogin login:SDKAppID userID:userID userSig:sig succ:^{ NSLog(@"-----> 登录成功"); } fail:^(int code, NSString *msg) { NSLog(@"-----> 登录失败"); }];}
步骤二:构建会话列表
会话列表只需要创建TUIConversationListController
对象即可。会话列表会从数据库中读取最近联系人,当用户单击联系人时,TUIConversationListController
将该事件回调给上层。
@implementation ConversationController // 您自己的 ViewController- (void)viewDidLoad { [super viewDidLoad]; // 创建 TUIConversationListController TUIConversationListController *conv = [[TUIConversationListController alloc] init]; conv.delegate = self; // 把 TUIConversationListController 添加到自己的 ViewController [self addChildViewController:conv]; [self.view addSubview:conv.view];}
- (void)conversationListController:(TUIConversationListController *)conversationController didSelectConversation:(TUIConversationCell *)conversation{ // 会话列表点击事件,通常是打开聊天界面}@end
步骤三:构建聊天窗口
初始化聊天界面时,上层需要传入当前聊天界面对应的会话信息,示例代码如下:
@implementation ChatViewController // 您自己的 ViewController- (void)viewDidLoad { // 创建会话信息 TUIChatConversationModel *data = [[TUIChatConversationModel alloc] init]; data.userID = @"userID"; // 创建 TUIC2CChatViewController TUIC2CChatViewController *vc = [[TUIC2CChatViewController alloc] init]; [vc setConversationData:data]; // 把 TUIC2CChatViewController 添加到自己的 ViewController [self addChildViewController:conv]; [self.view addSubview:conv.view];}@end
TUIC2CChatViewController
会自动拉取该用户的历史消息并展示出来。
步骤四:构建通讯录界面
通讯录界面不需要其它依赖,只需创建对象并显示出来即可。
@implementation ContactController // 您自己的 ViewController- (void)viewDidLoad { // 创建 TUIContactController TUIContactController *vc = [[TUIContactController alloc] init]; // 把 TUIContactController 添加到自己的 ViewController [self addChildViewController:conv]; [self.view addSubview:conv.view];}@end
步骤五:构建音视频通话功能
TUI 组件支持在聊天界面对用户发起音视频通话,仅需要简单几步就可以快速集成:
视频通话 | 语音通话 |
![]() |
![]() |
1. 创建音视频服务1.1 创建项目。创建项目,选择类型及场景,开通相关服务。1.1.1 登录 腾讯云视立方控制台 > 项目管理,单击创建项目开始创建。1.1.2 选择项目类型。可选择创建新项目并输入项目名称,或关联已有项目。1.1.3 选择接入场景。选择快速接入的音视频场景,分为聊天应用和音视频通话。
1.1.4 选择集成方式。选择含 UI 快速集成。1.1.5 开通相关服务。使用音视频通话 SDK 需提前开通即时通信 IM 和实时音视频 TRTC 服务,仅开通服务,不涉及付费购买产品。1.1.6 单击创建项目并下一步,完成项目创建,进入开发指引。
1.2 准备开发。1.2.1 体验 Demo。您可提前体验 Demo 了解 SDK 应用效果,包括 Android、iOS 和 Web 端。1.2.2 关联/创建 IM 应用。音视频通话创建需要使用 IM 服务,请选择一个 IM 应用进行关联或者创建新的应用。
1.2.3 领取资源。每个应用可免费体验音视频通话 SDK 功能一次,有效期7天,音视频通话 SDK 体验版详细能力支持请参见 套餐包功能说明。业务上线请升级购买正式版本套餐,享受完整功能。
1.2.4 单击 前往集成。1.3 集成指南1.3.1 选择集成环境并下载 TUIKit 开发包。集成环境包括 Android 和 iOS。1.3.2 集成测试。下载 TUIKit 开发包后,参照集成测试的步骤查看相关集成文档完成集成测试。1.3.3 正式开发。完成 SDK 接入测试后,若需正式开发并上线音视频应用,可购买音视频通话套餐包,包括基础版、进阶版和尊享版,升级当前项目业务版本,享受完整功能。
2. 集成 TUICallKit 组件在 podfile 文件中添加以下内容。
// 集成音视频通话组件pod 'TUICallKit'
3. 发起和接收视频或语音通话
消息页发起通话 | 联系人页发起通话 |
![]() |
![]() |
集成 TUICallKit 组件后,聊天界面和联系人资料界面默认会出现 “视频通话” 和 “语音通话” 两个按钮,当用户单击按钮时,TUIKit 会自动展示通话邀请 UI,并给对方发起通话邀请请求。当用户在线收到通话邀请时,TUIKit 会自动展示通话接收 UI,用户可以选择同意或者拒绝通话。当用户离线收到通话邀请时,如需唤起 App 通话,就要使用到离线推送能力,离线推送的实现请参见 添加离线推送。4. 添加离线推送在使用离线推送之前,您需要开通 IM 离线推送 服务。关于 App 的配置,您可以参考文档:集成 TUIOfflinePush 跑通离线推送功能。配置完成后,当单击接收到的音视频通话离线推送通知时, TUICallKit 会自动拉起音视频通话邀请界面。说明:更多实操教学视频请参见:极速集成 TUIKit(iOS)。
常见问题
1、提示 “target has transitive dependencies that include statically linked binaries” 如何处理?
如果在 pod 过程中出现该错误,是因为 TUIKit 使用到了第三方静态库,需要在 podfile 中注释掉use_frameworks!
。
如果在某种情况下,需要使用use_frameworks!
,则请使用 cocoapods 1.9.0 及以上版本进行pod install
,并修改为:
use_frameworks! :linkage => :static
如果您使用的是 swift,请将头文件引用改成 @import 模块名形式引用。
2、TUICallKit 和自己集成的音视频库冲突了?
腾讯云的 音视频库 不能同时集成,会有符号冲突,如果您使用了非 TRTC 版本的音视频库,建议先去掉,然后 pod 集成TUICallKit/Professional
版本,该版本依赖的 LiteAV_Professional 音视频库包含了音视频的所有基础能力。如果您使用了 LiteAV_Enterprise 音视频库,暂不支持和 TUICallKit 共存。具体解决方案可以参考文档:音视频常见问题。
3、通话邀请的超时时间默认是多久?
通话邀请的默认超时时间是 30 秒。
4、在邀请超时时间内,被邀请者如果离线再上线,能否立即收到邀请?
如果是单聊通话邀请,被邀请者离线再上线可以收到通话邀请,TUIKit 内部会自动唤起通话邀请界面。如果是群聊通话邀请,被邀请者离线再上线后会自动拉取最近 30 秒内的邀请,TUIKit 会自动唤起群通话界面。
交流与反馈
欢迎加入 QQ 群进行技术交流和反馈问题。
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?