Call
  • Web
    • Overview
      • Product Introduction
      • Activate the Service
      • 价格中心
        • 免费时长
        • Call 包月套餐
        • 订阅套餐时长计费说明
    • Get Started
      • Run Sample Code
      • Integration (React)
      • Integration (Vue3)
      • Secure authentication with userSig
    • Basic Features
      • UI Customization
      • Configuring Nickname and Avatar
      • GroupCall
      • 悬浮窗
      • 自定义铃声
      • 设置分辨率和填充模式
      • 监控通话状态
    • Advanced Features
      • 虚拟背景
      • AI 降噪
      • 云端录制
    • 客户端 API
      • UIKit APIs
        • API Overview
        • TUICallKit
      • Engine APIs
        • TUICallEngine
        • TUICallEvent
    • 服务端 API
      • 通话状态回调
        • 通话状态回调
        • 通话事件回调
        • 回调配置
          • 回调配置接口列表
          • 创建回调配置
          • 查询回调配置
          • 更新回调配置
          • 删除回调配置
      • REST 接口
        • REST 接口简介
        • 通过 callId 获取记录
        • 通过条件获取记录
    • FAQs
      • All Platfroms
      • Web
      • ErrorCode
      • 发布说明
  • Android
    • Overview
      • Product Introduction
      • Activate the Service
      • Pricing
        • Free Minutes
        • Call Monthly Packages
        • Billing Explanation for Subscription Package Duration
    • Get Started
      • 跑通 Demo
      • 集成
      • Secure authentication with userSig
    • Basic Features
      • UI 定制
      • 离线通话推送
      • Configuring Nicknames and Avatars
      • 群组通话
      • 悬浮窗
      • 自定义铃声
      • 监控通话状态
    • 更多功能
      • 虚拟背景
      • AI 降噪
      • 云端录制
    • 客户端 API
      • UIKit APIs
        • 接口概述
        • TUICallKit
        • TUICallObserver
        • 类型定义
      • Engine APIs
        • TUICallEngine
    • 服务端 API
      • 通话状态回调
        • 通话状态回调
        • 通话事件回调
        • 回调配置
          • 回调配置接口列表
          • 创建回调配置
          • 查询回调配置
          • 更新回调配置
          • 删除回调配置
      • REST 接口
        • REST 接口简介
        • 通过 callId 获取记录
        • 通过条件获取记录
    • FAQs
      • All Platforms
      • Android
      • ErrorCode
      • 发布说明
  • iOS
    • Overview
      • Product Introduction
      • Activate the Service
      • Pricing
        • Free Minutes
        • Call Monthly Packages
        • Billing Explanation for Subscription Package Duration
    • Get Started
      • 跑通 Demo
      • 集成
      • Secure authentication with userSig
    • Basic Features
      • UI 定制
      • 离线通话推送
        • VoIP
        • APN
      • 设置昵称和头像
      • 群组通话
      • 悬浮窗
      • 自定义铃声
      • 监控通话状态
    • 更多功能
      • 虚拟背景
      • AI 降噪
      • 云端录制
    • 客户端 API
      • UIKit APIs
        • 接口概述
        • TUICallKit
        • TUICallObserver
        • 类型定义
      • Engine APIs
        • TUICallEngine
    • 服务端 API
      • 通话状态回调
        • 通话状态回调
        • 通话事件回调
        • 回调配置
          • 回调配置接口列表
          • 创建回调配置
          • 查询回调配置
          • 更新回调配置
          • 删除回调配置
      • REST 接口
        • REST 接口简介
        • 通过 callId 获取记录
        • 通过条件获取记录
    • FQAs
      • All Platform
      • iOS
      • ErrorCode
      • 发布说明
  • Flutter
    • Overview
      • 产品概述
      • 开通服务
      • Pricing
        • Free Minutes
        • Call Monthly Packages
        • Billing Explanation for Subscription Package Duration
    • Get Started
      • 跑通 Demo
      • 集成
      • Secure authentication with userSig
    • Basic Features
      • UI 定制
      • 离线通话推送
        • 通知
        • VoIP(可选)
      • 设置昵称和头像
      • 群组通话
      • 悬浮窗
      • 自定义铃声
      • 监控通话状态
    • 更多功能
      • 虚拟背景
      • AI 降噪
      • 云端录制
      • 美颜特效
    • 客户端 API
      • 接口概述
      • TUICallKit
      • TUICallEngine
      • TUICallObserver
      • 类型定义
    • 服务端 API
      • 通话状态回调
        • 通话状态回调
        • 通话事件回调
        • 回调配置
          • 回调配置接口列表
          • 创建回调配置
          • 查询回调配置
          • 更新回调配置
          • 删除回调配置
      • REST 接口
        • REST 接口简介
        • 通过 callId 获取记录
        • 通过条件获取记录
    • FQAs
      • All Platform
      • Flutter
      • ErrorCode
      • 升级
      • 发布说明
Call

集成

本文将介绍如何快速完成 TUICallKit 组件的接入,您将在 10 分钟内完成以下几个关键步骤,并最终得到一个包含完备 UI 界面的视频通话功能。
1v1 视频通话
群组通话







环境准备

Xcode 13 及以上。
iOS 13.0 及以上。
CocoaPods环境安装,点击查看
如果您的接入和使用中遇到问题,请参见 常见问题

步骤一:开通服务

请参见 开通服务,获取 SDKAppID、SDKSecretKey,他们将在 步骤四:初始化 TUICallKit 组件 作为必填参数使用。

步骤二:导入组件

使用 CocoaPods 导入组件,如果您遇到问题,请先参见 环境准备。导入组件具体骤如下:
1. 请在您的 Podfile 文件中添加 pod 'TUICallKit_Swift' 依赖,如果您遇到任何问题,请参见 Example 工程。
target 'xxxx' do
...
pod 'TUICallKit_Swift'
end
说明:
如果您的项目中缺少Podfile 文件,您需要在终端中cdxxxx.xcodeproj目录,然后,通过执行以下命令来创建Podfile文件:
pod init
2. 在终端中,首先cdPodfile目录下,然后执行以下命令,安装组件。
pod install
说明:
如果无法安装 TUICallKit 最新版本,可以先删除 Podfile.lock Pods。然后执行以下命令更新本地的 CocoaPods 仓库列表。
pod repo update
之后执行以下命令,更新组件库的 Pod 版本。
pod update
3. 建议您编译并运行一次。如果遇到问题,可以参见我们的 常见问题。如果问题仍未解决,您可以尝试运行我们的 Example 工程。在接入和使用过程中,如果遇到问题,欢迎向我们反馈

步骤三:工程配置

使用音视频功能,需要授权摄像头和麦克风的使用权限,请根据实际项目需要,设置项目所需权限。
1. Xcode 中,选择 TARGETS > Info > Custom iOS Target Properties 菜单。



2. 单击+,添加摄像头和麦克风权限。
Privacy - Camera Usage Description
Privacy - Microphone Usage Description




步骤四:登录 TUI 组件

在您的项目中添加如下代码,它的作用是通过调用 TUICore 中的相关接口完成 TUI 组件的登录。这一步骤至关重要,只有在成功登录之后,您才能正常使用 TUICallKit 提供的各项功能。
Swift
Objective-C
import TUICore
import TUICallKit_Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let userID = "denny" // 请替换为您的 UserId
let sdkAppID: Int32 = 0 // 请替换为第一步在控制台得到的 SDKAppID
let secretKey = "****" // 请替换为第一步在控制台得到的 SecretKey

let userSig = GenerateTestUserSig.genTestUserSig(userID: userID, sdkAppID: sdkAppID, secretKey: secretKey)

TUILogin.login(sdkAppID, userID: userID, userSig: userSig) {
print("login success")
} fail: { code, message in
print("login failed, code: \(code), error: \(message ?? "nil")")
}

return true
}
#import <TUICore/TUILogin.h>
#import <TUICallKit_Swift/TUICallKit_Swift-Swift.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *userID = @"denny"; // 请替换为您的 UserId
int sdkAppID = 0; // 请替换为第一步在控制台得到的 SDKAppID
NSString *secretKey = @"****"; // 请替换为第一步在控制台得到的 SecretKey

NSString *userSig = [GenerateTestUserSig genTestUserSigWithUserID:userID sdkAppID:sdkAppID secretKey:secretKey];

[TUILogin login:sdkAppID
userID:userID
userSig:userSig
succ:^{
NSLog(@"login success");
} fail:^(int code, NSString * _Nullable msg) {
NSLog(@"login failed, code: %d, error: %@", code, msg);
}];
return YES;
}
参数
类型
说明
userID
String
客户根据自己的业务自定义用户 ID,只允许包含大小写英文字母(a-z A-Z)、数字(0-9)及下划线和连词符。
sdkAppID
Int32
Tencent RTC 控制台 创建的音视频应用的唯一标识 SDKAppID。
secretKey
String
Tencent RTC 控制台 创建的音视频应用的 SDKSecretKey。
userSig
String
一种安全保护签名,用于对用户进行登录鉴权认证,确认用户是否真实,阻止恶意攻击者盗用您的云服务使用权。
注意:
开发环境:如果您处于本地开发调试阶段,可以使用本地 GenerateTestUserSig.genTestSig 函数生成 userSig。但请注意,该方法中的 SDKSecretKey 容易被反编译逆向破解。一旦密钥泄露,攻击者可能盗用您的腾讯云流量。
生产环境:如果您的项目要发布上线,请采用 服务端生成 UserSig 的方式。

步骤五:拨打您的第一通电话

通过调用 TUICallKit 的 call 函数并指定通话类型和被叫方的 userId,就可以发起语音或者视频通话。
Swift
Objective-C
import TUICallKit_Swift

// 发起1对1语音通话(假设 userId 为 mike)
TUICallKit.createInstance().call(userId: "mike", callMediaType: .audio)
#import <TUICallKit_Swift/TUICallKit_Swift-Swift.h>

// 发起1对1语音通话(假设 userId 为 mike)
[[TUICallKit createInstance] callWithUserId:@"mike" callMediaType:TUICallMediaTypeAudio];
主叫方
被叫方







更多特性

悬浮窗

常见问题

如果您的接入和使用中遇到问题,请参见 常见问题

交流与反馈

如果有任何需要或者反馈,您可以联系:info_rtc@tencent.com。