TUIKit 组件从 4.8.50 版本开始支持音视频通话功能,并且实现了 iOS、 Android、Web 平台的互通。
说明:
- 在 6.5.xxxx 版本以后,TUIKit 组件升级了音视频通话功能,采用了全新的 TUICallKit,新版本音视频通话功能需要加购专属的 IM 音视频通话能力包后解锁,具体购买方法请参考 步骤1:开通音视频服务,如已开通,则可忽略该步骤。
- 需要注意的是不同的版本在集成方式上有一定的区别,详见 版本说明。建议升级到 6.5.2816 及以上版本,本文重点讲解 6.5.2816 及以上版本的集成方案。
音视频通话界面如下图所示:
视频通话 |
语音通话 |
---|---|
![]() |
![]() |
登录 即时通信 IM 控制台 ,单击目标应用卡片,进入应用的基础配置页面。
在页面的右下角找到腾讯实时音视频服务功能区,单击下方 音视频通话能力-免费体验 ,在弹出的免费开通音视频通话能力体验版对话框中,单击免费开通,即可开通 TUICallKit 的 60 天免费试用服务。
在 APP
的 build.gradle
文件中添加对 tuicallkit
的依赖:
api project(':tuicallkit')
TUICallKit 组件和 TUIChat 组件可自由组合,当集成了 TUICallKit 组件后,TUIChat 会默认开启音视频通话功能,并在聊天页面更多菜单中显示入口。
如果您想在 TUIChat 中动态的打开/关闭视频或语音通话入口,可以手动修改 InputView.java 文件的 addActionsFromListeners
函数。示例代码如下:
private void addActionsFromListeners() {
...
boolean enableAudio = true; // 动态开启语音通话入口
boolean enableVideo = true; // 动态开启视频通话入口
Map<String, Object> audioCallExtension = TUICore.getExtensionInfo(TUIConstants.TUIChat.EXTENSION_INPUT_MORE_AUDIO_CALL, param);
if (audioCallExtension != null && enableAudio) {
...
mInputMoreActionList.add(audioUnit);
}
Map<String, Object> videoCallExtension = TUICore.getExtensionInfo(TUIConstants.TUIChat.EXTENSION_INPUT_MORE_VIDEO_CALL, param);
if (videoCallExtension != null && enableVideo) {
...
mInputMoreActionList.add(videoUnit);
}
...
}
在使用离线推送之前,您需要开通 IM 离线推送 服务。关于 APP 的配置,您也可以参考 TUIKitDemo 内的 OEMPush 快速接入厂商推送,完成后,接收端就可以收到如图所示的通知:
单击这个通知,就会跳转到通话界面。
说明:配置完成后,当单击接收到的“音视频通话离线推送通知”时,首先会打开您配置的 APP 跳转页面,然后 TUICallKit 会自动拉起“音视频通话邀请界面”
版本 | 库/组件名称 | 说明 |
---|---|---|
4.8.50 ~ 5.1.60 | TUIKit | TUIKit 组件默认集成了音视频通话 UI 组件和 TRTC 音视频库 |
5.4.666 ~ 5.6.1200 | TUIKitLive | TUIKit 组件默认不再集成音视频通话 UI 组件和 TRTC 音视频库 音视频相关逻辑都移到了 TUIKitLive 组件里面 |
5.7.1435 - 6.0.1992 | TUICalling | TUICalling 组件包含了所有的音视频通话 UI 和 TRTC 音视频库 TUICalling 组件支持与 TUIKit 其他组件自由组合 |
6.1.2155 - 6.5.2803 | TUICalling | TUICalling 前后台切换体验优化 |
6.5.2816 及以上 | TUICallKit | 全新升级音视频通话组件,功能更强大 |
如遇以上错误提示,是由于您当前应用的音视频通话能力包过期或未开通,请参见 步骤一:开通服务,领取或者开通音视频通话能力,进而继续使用 TUICallKit 组件.
音视频通话 SDK 目前处于内测期,提供有效期为60天的免费体验版。
根据 App 的启动类型,分别有不同的情况:
说明:如果离线再上线后没有弹出通话界面,请过滤"onReceiveNewInvitation"日志,检查是否拉取到历史消息
需要检查下,配置的离线推送的跳转逻辑,确保可以拉取 App 主界面。
说明:例如,在 App 中配置的 intent 需要与小米推送控制台上的一致。
<activity
android:name="应用包名.MainActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="com.tencent.qcloud"
android:path="/detail"
android:scheme="pushscheme" />
</intent-filter>
</activity>
将应用从后台自动拉取到前台,需要检查 App 是否开启了”后台自启动“或”悬浮窗“权限。
值得注意的是,不同厂商、甚至同一厂商不同 Android 版本,其对于应用开放的权限以及权限名称也会存在不一致。例如,小米6只需要开启后台弹出界面权限,而红米需要同时打开后台弹出界面和显示悬浮窗权限。
说明:如果您在测试过程中发现手动开启了所有权限,依然无法自动拉起通话界面到前台,需要做兼容处理。
只需要替换 IM 相关组件的源代码即可。TUICalling 和 TUICallKit 可以自由互通,建议您升级到最新的 TUICallKit 组件。
本页内容是否解决了您的问题?