1. IM 콘솔에 로그인하고 애플리케이션 생성을 클릭하고 팝업 대화 상자에 애플리케이션 이름을 입력하고 확인을 클릭합니다.
2. 방금 생성한 애플리케이션을 클릭하여 기본 구성 페이지로 이동하고 TUICallKit의 7일 무료 평가판을 보려면 페이지 오른쪽 하단 모서리에 있는 TRTC 활성화에서 무료 평가판을 클릭하십시오. 애플리케이션을 공식 릴리스하려면 구매를 클릭하여 구매 페이지로 이동합니다.
주의사항:
다양한 비즈니스 요구 사항에 따라 IM 음성/영상 통화 기능의 다양한 유료 버전을 사용할 수 있습니다. IM 구매 페이지에서 사용 가능한 기능에 대해 자세히 알아보고 원하는 버전을 구매할 수 있습니다.
3. 같은 페이지에서 SDKAppID와 **키(SecretKey)**를 찾아 기록해 둡니다. 4단계: TUI 컴포넌트 로그인에서 사용될 예정입니다.
설명:
참고:무료 체험을 클릭하면 이전에 TRTC 서비스를 사용한 적이 있는 일부 사용자에게 다음 메시지가 표시됩니다.
[-100013]:TRTC service is suspended. Please check if the packagebalance is 0 or the TencentCloud accountis in arrears
새로운 IM 음성 및 영상 통화 기능은 TRTC 및 IM의 두 가지 기본 PaaS 서비스가 통합되어 있으므로, TRTC의 무료 할당량(10000분)이 만료되거나 소진되면 이 서비스를 활성화할 수 없습니다. 예시 이미지와 같이 TRTC 콘솔을 클릭하여 SDKAppID에 해당하는 애플리케이션 관리 페이지에서 후불 기능을 활성화한 후 다시 애플리케이션을 활성화하면 음성 및 영상 통화 기능을 정상적으로 체험할 수 있습니다.
2단계: 컴포넌트 다운로드 및 가져오기
Github에서 코드를 복제/다운로드한 다음 아래와 같이 Android 디렉터리 아래의 tuicallkit 서브 디렉터리를 현재 프로젝트의 app과 동일한 수준 디렉터리로 복사합니다.
3단계: 프로젝트 구성 완료
1. 프로젝트의 루트 디렉터리에서 'setting.gradle' 파일을 찾고 다음 코드를 추가합니다. 이 파일은 2단계에서 다운로드한 tuicallkit 컴포넌트를 현재 프로젝트로 가져올 수 있습니다.
include ':tuicallkit'
2. app 디렉터리에서 'build.gradle' 파일을 찾아 다음 코드를 추가합니다. 이 파일은 현재 새로 추가된 tuicallkit 컴포넌트에 대한 현재 app의 종속을 선언합니다.
api project(':tuicallkit')
설명:
TUICallKit 프로젝트에는 기본 종속성인 TRTC SDK, IM SDK, tuicallengine 및 공용 라이브러리 tuicore가 있으며 개발자가 별도로 구성할 필요가 없습니다. 버전을 업그레이드하려면 tuicallkit/build.gradle 파일을 수정하기만 하면 됩니다.
3. SDK 내에서 Java의 리플렉션 특성을 사용하기 때문에 SDK의 일부 클래스를 난독화 방지 목록에 추가해야 하므로 proguard-rules.pro 파일에 다음 코드를 추가해야 합니다.
-keep class com.tencent.** { *;}
주의사항:
TUICallKit은 내부적으로 카메라, 마이크, 읽기 저장 권한 등을 동적으로 신청할 수 있도록 도와드립니다. 업무 문제로 인해 삭제해야 하는 경우 tuicallkit/src/main/AndroidManifest.xml을 수정합니다.
4단계: TUI 컴포넌트 로그인
프로젝트에 다음 코드를 추가하는 것은 TUICore에서 관련 인터페이스를 호출하여 TUI 컴포넌트의 로그인을 완료하는 것입니다. TUICallKit의 다양한 기능은 로그인이 성공한 후에야 정상적으로 사용할 수 있기 때문에 이 단계는 매우 중요합니다. 따라서 관련 매개변수가 올바르게 구성되었는지 확인하십시오.
매개변수 설명: 여기에서는 login 함수에 사용되는 몇 가지 주요 매개변수에 대해 자세히 설명합니다.
SDKAppID: 1단계의 마지막 순서에서 이미 얻었으므로 여기서 더 이상 반복하지 않습니다.
UserID: 현재 사용자 ID입니다. 영어 알파벳(a-z, A-Z), 숫자(0~9), 하이픈(-), 언더바(_)의 문자열로 구성합니다.
UserSig: 1단계의 3번째 순서에서 획득한 SecretKey를 사용하여 SDKAppID, UserID 등의 정보를 암호화하면, Tencent Cloud가 현재 사용자의 TRTC 서비스 사용 가능 여부를 식별하는 인증용 티켓인 UserSig를 얻을 수 있습니다. 콘솔의 보조 툴을 통해 일시적으로 사용 가능한 UserSig를 생성할 수 있습니다.
이 단계는 지금까지 개발자들로부터 가장 많은 피드백을 받은 단계이기도 합니다. 자주 발생하는 문제는 다음과 같습니다.
SDKAppID 설정 오류. 중국 사이트의 SDKAppID는 일반적으로 140으로 시작하는 10자리 정수입니다.
UserSig가 암호화 키(SecretKey)와 일치하지 않는 경우 SecretKey를 UserSig로 직접 구성하지 않고 SDKAppID, UserID, 만료 시간 등의 정보를 SecretKey로 암호화하여 UserSig를 얻습니다.
UserID는 ‘1’, ‘123’, ‘111’ 등의 간단한 문자열로 설정됩니다. TRTC는 동일한 UserID의 다중 단말 로그인을 지원하지 않기 때문에, 여러 사람이 공동으로 개발할 경우,‘1’, ‘123’, ‘111’과 같은 UserID는 동료에 의해 쉽게 점유되어 로그인 실패의 원인이 될 수 있으므로 디버깅할 때 인식도가 높은 UserID를 설정하는 것이 좋습니다.
Github의 예시 코드는 genTestUserSig 함수를 사용하여 현재 액세스 프로세스를 더 빠르게 실행할 수 있도록 로컬에서 UserSig를 계산하지만 이 솔루션은 App 코드에 SecretKey를 노출하므로 SecretKey를 업그레이드하고 보호하려면 UserSig의 계산 로직을 서버에 두는 것을 강력히 권장합니다. app은 TUICallKit 컴포넌트가 사용될 때마다 서버에서 실시간으로 계산된 UserSig를 요청합니다.
5단계: 전화 걸기
1:1 영상 통화
TUICallKit의 call 함수를 호출하고 통화 유형 및 수신자의 userId를 지정하여 음성 또는 영상 통화를 시작할 수 있습니다.
사용자 개인정보 제한으로 인해 친구가 아닌 사용자와의 통화 시 수신자의 닉네임 및 프로필 사진 업데이트가 딜레이될 수 있으며, 통화 성공 후 원활하게 업데이트 됩니다.
2. 오프라인 푸시
상기 단계를 완료한 후 음성 또는 영상 통화를 걸거나 받을 수 있습니다. 그러나 응용 프로그램이 백그라운드에 있거나 응용 프로그램이 닫힌 후에도 사용자가 전화 초대를 받을 수 있도록 하려면 오프라인 푸시 기능도 구현해야 합니다. 자세한 내용은 오프라인 푸시(Android)를 참고하십시오.
3. 플로팅 창 기능
플로팅 창 기능을 활성화하려면 TUICallKit 컴포넌트 초기화 시 다음 인터페이스를 호출하여 이 기능을 활성화할 수 있습니다.
1. ‘The package you purchased does not support this ability’라는 오류 메시지가 표시되면 어떻게 해야 합니까?
오류 메시지는 애플리케이션의 오디오/비디오 통화 기능 패키지가 만료되었거나 활성화되지 않았음을 나타냅니다. TUICallKit을 계속 사용하려면 1단계의 지침에 따라 음성/영상 통화 기능을 요청하거나 활성화할 수 있습니다.
2. TUICallKit이 크래쉬되고 "No implementation found for xxxx" 로그가 출력되면 어떻게 해야 합니까?
다음은 스택 정보입니다.
java.lang.UnsatisfiedLinkError:No implementation found forvoidcom.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(NativeMethod)
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(NativeMethod)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
TUICallkit은 가상 컴퓨터에서 지원되지 않으며 실제 디바이스에서 실행해야 합니다. 상기 예외가 실제 디바이스에서 발생하는 경우 TUICallKit에 의존하는 TRTC SDK와 같은 SDK의 일부 API는 JNI를 통해 구현되지만 Android Studio는 일부 조건에서 APK를 컴파일할 때 Native .so 라이브러리를 패키징하지 않을 수 있습니다. 이 경우 프로젝트를 다시 Clean하면 됩니다.