settings.gradle(或settings.gradle.kts)
文件,在其中增加如下代码,它的作用是将 步骤二 中下载的组件导入到您当前的项目中:include ':tuicallkit-kt'
include(":tuicallkit-kt")
build.gradle(或build.gradle.kts)
文件,增加如下代码,它的作用是声明当前 app 对新加入的组件的依赖:api project(':tuicallkit-kt')
api(project(":tuicallkit-kt"))
TRTC SDK
、IM SDK
、tuicallengine
以及公共库 tuicore
,不需要开发者单独配置。如需进行版本升级,则修改tuicallkit-kt/build.gradle
文件即可。proguard-rules.pro
文件中添加如下代码:-keep class com.tencent.** { *; }
tuicallkit-kt/src/main/AndroidManifest.xml
。TUILogin.login(this,1400000001, // 请替换为步骤一取到的 SDKAppID"denny", // 请替换为您的 UserID"xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置object : TUICallback() {override fun onSuccess() {}override fun onError(errorCode: Int, errorMessage: String) {}})}
// 发起1对1视频通话(假设 UserID 为 mike)TUICallKit.createInstance(context).call("mike", TUICallDefine.MediaType.Video)
参数 | 类型 | 含义 |
userId | String | 目标用户的 UserID: "mike" |
callMediaType | 通话的媒体类型,示例: TUICallDefine.MediaType.Video |
TUICallKit.createInstance(context).groupCall("12345678", Arrays.asList("jane", "mike", "tommy"),TUICallDefine.MediaType.Video)
参数 | 类型 | 含义 |
groupId | String | 群组 Id,示例: "12345678" |
userIdList | List | 目标用户的 UserID 列表,示例: {"jane", "mike", "tommy"} |
callMediaType | 通话的媒体类型,示例: TUICallDefine.MediaType.Video |
悬浮窗权限
或后台弹出应用
等权限时,仍然会自动弹出呼叫界面并播放来电铃音。悬浮窗权限
或后台弹出应用
等权限时,点击桌面应用图标进入应用后会弹出呼叫界面。TUICallKit.createInstance(context).setSelfInfo("jack", "https:/****/user_avatar.png", callback)
应用的进程被杀死后
或者应用退到后台后
,还可以正常接收到音视频通话请求,就需要增加离线唤醒功能,详情见 离线唤醒(Android)。TUICallKit.createInstance(context).enableFloatWindow(true)
private val observer: TUICallObserver = object : TUICallObserver() {override fun onCallBegin(roomId: TUICommonDefine.RoomId?, callMediaType: TUICallDefine.MediaType?, callRole: TUICallDefine.Role?) {}override fun onCallEnd(roomId: TUICommonDefine.RoomId?, callMediaType: TUICallDefine.MediaType?, callRole: TUICallDefine.Role?, totalTime: Long) {}override fun onUserNetworkQualityChanged(networkQualityList: MutableList<TUICommonDefine.NetworkQualityInfo>?) {}}private fun initData() {TUICallEngine.createInstance(context).addObserver(observer)}
TUICallKit.createInstance(context).setCallingBell(filePath)
val params = CallParams()params.offlinePushInfo = createOfflinePushInfo(this)params.timeout = 30params.userData = "user data"TUICallEngine.createInstance(context).call(roomId, userId, mediaType, params, null)
java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.liteav.base.Log.nativeWriteLogToNative(int, java.lang.String, java.lang.String) (tried Java_com_tencent_liteav_base_Log_nativeWriteLogToNative and Java_com_tencent_liteav_base_Log_nativeWriteLogToNative__ILjava_lang_String_2Ljava_lang_String_2)at com.tencent.liteav.base.Log.nativeWriteLogToNative(Native Method)at com.tencent.liteav.base.Log.i(SourceFile:177)at com.tencent.liteav.basic.log.TXCLog.i(SourceFile:36)at com.tencent.liteav.trtccalling.model.impl.base.TRTCLogger.i(TRTCLogger.java:15)at com.tencent.liteav.trtccalling.model.impl.ServiceInitializer.init(ServiceInitializer.java:36)at com.tencent.liteav.trtccalling.model.impl.ServiceInitializer.onCreate(ServiceInitializer.java:101)at android.content.ContentProvider.attachInfo(ContentProvider.java:2097)at android.content.ContentProvider.attachInfo(ContentProvider.java:2070)at android.app.ActivityThread.installProvider(ActivityThread.java:8168)at android.app.ActivityThread.installContentProviders(ActivityThread.java:7709)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7573)at android.app.ActivityThread.access$2600(ActivityThread.java:260)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2435)at android.os.Handler.dispatchMessage(Handler.java:110)at android.os.Looper.loop(Looper.java:219)at android.app.ActivityThread.main(ActivityThread.java:8668)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
本页内容是否解决了您的问题?