tencent cloud

文档反馈

集成 TUICalling (iOS)

最后更新时间:2022-08-10 17:02:12

    组件介绍

    TUICalling 是一个开源的音视频 UI 组件,通过在项目中集成 TUICalling 组件,您只需要编写几行代码就可以为您的 App 添加“一对一音视频通话”场景,并且支持离线唤起能力。TUICalling 同时支持 Android、Web、小程序、Flutter、UniApp 等平台,基本功能如下图所示:

    说明:

    TUIKit 系列组件同时使用了腾讯云 实时音视频 TRTC即时通信 IM 两个基础 PaaS 服务,开通实时音视频后会同步开通即时通信IM服务。即时通信 IM 服务详细计费规则请参见 即时通信 - 价格说明,TRTC 开通会默认关联开通 IM SDK 的体验版,仅支持100个 DAU。

    组件集成

    步骤一:导入 TUICalling 组件

    通过 cocoapods 导入组件,具体步骤如下:

    1. 在您的工程 Podfile 文件同一级目录下创建 TUICalling 文件夹。
    2. 单击进入 Github/TUICalling ,选择克隆/下载代码,然后将 TUICalling/iOS/ 目录下的 SourceResources 文件夹 和 TUICalling.podspec 文件拷贝到您在 步骤1 创建的 TUICalling 文件夹下。
    3. 在您的 Podfile 文件中添加以下依赖,之后执行 pod install 命令,完成导入。
    # :path => "指向TUICalling.podspec的相对路径"
    pod 'TUICalling', :path => "TUICalling/TUICalling.podspec", :subspecs => ["TRTC"]
    
    注意:

    SourceResources 文件夹 和TUICalling.podspec文件必需在同一目录下。

    步骤二:配置权限

    使用音视频功能,需要授权麦克风和摄像头的使用权限。在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。

    <key>NSCameraUsageDescription</key>
    <string>CallingApp需要访问您的相机权限,开启后录制的视频才会有画面</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>CallingApp需要访问您的麦克风权限,开启后录制的视频才会有声音</string>
    

    步骤三:创建并初始化组件

    <dx-code-holder data-codeindex="2"></dx-code-holder>

    参数说明

    • SDKAppIDTRTC 应用ID,如果您未开通腾讯云 TRTC 服务,可进入 腾讯云实时音视频控制台,创建一个新的 TRTC 应用后,单击应用信息,SDKAppID 信息如下图所示:
    • SecretKeyTRTC 应用密钥,和 SDKAppID 对应,进入 TRTC 应用管理 后,SecretKey 信息如上图所示。
    • UserID:当前用户的 ID,字符串类型,长度不超过32字节,不支持使用特殊字符,建议使用英文或数字,可结合业务实际账号体系自行设置。
    • UserSig:根据 SDKAppId、UserID,SecretKey 等信息计算得到的安全保护签名,您可以单击 这里 直接在线生成一个调试的 UserSig,也可以参照我们的 TUICalling示例工程 自行计算,更多信息见 如何计算及使用 UserSig

    步骤四:实现音视频通话

    实现1对1视频通话 TUICalling#call:

    // 发起1对1视频通话,假设userId为:1111
    [[TUICalling shareInstance] call:@[@"1111"] type:TUICallingTypeVideo];
    说明:

    当接收方完成步骤三后,即登录成功后,再收到通话请求后,TUICalling组件会自动启动相应的接听界面。

    步骤五:离线推送(可选)

    完成以上四个步骤,就可以实现视频通话的拨打和接通,但如果您的业务场景需要在 App 的进程被杀死后或者 App 退到后台后,还可以正常接收到音视频通话请求,就需要为 TUICalling 组件增加离线推送功能,详情见 离线推送(iOS)

    步骤六:状态监听(可选)

    如果您的业务需要 监听通话的状态,例如通话开始、结束等,可以监听以下事件:

    [[TUICalling shareInstance] setCallingListener:self];

    - (BOOL)shouldShowOnCallView {
    return YES;
    }

    - (void)callStart:(nonnull NSArray<nsstring *=""> *)userIDs type:(TUICallingType)type role:(TUICallingRole)role viewController:(UIViewController * _Nullable)viewController {

    }

    - (void)callEnd:(nonnull NSArray<nsstring *=""> *)userIDs type:(TUICallingType)type role:(TUICallingRole)role totalTime:(float)totalTime {

    }

    - (void)onCallEvent:(TUICallingEvent)event type:(TUICallingType)type role:(TUICallingRole)role message:(nonnull NSString *)message {

    }

    步骤七:悬浮窗功能(可选)

    如果您的业务需要开启 悬浮窗功能,您可以在 TUICalling 组件初始化时调用TUICalling.shareInstance().enableFloatWindow(enable: true)开启该功能。

    说明:

    目前组件仅支持应用内悬浮窗(最小化退到上一层界面)。

    常见问题

    TUICalling 组件支持自定义铃声吗?

    支持,调用 TUICalling#setCallingBell 即可。

    CocoaPods如何安装?

    在终端窗口中输入如下命令(需要提前在 Mac 中安装 Ruby 环境):

    // 1.组件登录
    TUILogin.initWithSdkAppID("您的SDKAppID")
    TUILogin.login("您的UserID", userSig: "您的UserSig") {
       print("login success")
    } fail: { code, message in
       print("login failed, code: \(code), error: \(message ?? "nil")")
    }
    // 2.初始化TUICalling实例
    TUICalling.shareInstance()
    

    TUICalling 是否支持后台运行?

    支持,如需要进入后台仍然运行相关功能,可选中当前工程项目,在 Capabilities 下的设置 Background Modes 打开为 ON,并勾选 Audio,AirPlay and Picture in Picture ,如下图所示:

    说明:

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

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持