腾讯云音视频通话SDKiOS_音视频解决方案_同尘科技

音视频通话SDK 1年前 (2023-09-11) 浏览 62

开发环境要求

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折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?