통합

본 문서는 TUICallKit 컴포넌트의 액세스 작업을 빠르게 완료할 수 있도록 안내합니다. 본 문서를 따라하면, 10분 이내에 액세스를 완료할 수 있고 최종적으로 완전한 사용자 인터페이스 및 오디오/비디오 기능을 갖춘 애플리케이션을 얻을 수 있습니다.
비디오 통화
그룹 통화



환경 준비

Flutter 3.0 및 더 높은 버전.

단계 1: 서비스 활성화

Tencent Cloud에서 제공하는 오디오/비디오 서비스를 이용하기 전에 콘솔로 이동하여 애플리케이션의 오디오/비디오 서비스를 활성화해야 하고, SDKAppID、SDKSecretKey을 획득하고, 그들은 단계 5 에서 사용되며 구체적인 단계는 서비스 활성화를 참고하시기 바랍니다.

단계 2: TUICallKit 컴포넌트 가져오기

프로젝트의 루트 디렉토리에서 명령행을 통해 다음의 명령을 실행하여 컴포넌트 tencent_calls_uikit 플러그인을 설치한다.
flutter pub add tencent_calls_uikit

단계 3: 프로젝트 구성 완료

Android
iOS
1. Android 플랫폼에서 컴파일이 실행해야 하는 경우, SDK 내부에서 Java의 리플렉션 기법을 사용하기 때문에 SDK의 일부 클래스를 난독화되지 않은 목록에 추가해야 합니다.
우선, 프로젝트의 android/app/build.gradle 파일에 난독화 규칙을 구성하고 활성화해야 합니다.
android {
......
buildTypes {
release {
......
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
프로젝트의 android/app 디렉토리 아래에 proguard-rules.pro 파일을 만들고, proguard-rules.pro 파일에 다음의 코드를 추가합니다.
-keep class com.tencent.\*\* { \*; }
2. 프로젝트의 android/app/build.gradle 파일에 Multidex 지원을 구성하고 활성화합니다.
android {
......
defaultConfig {
...... multiDexEnabled true }
}
TUICallKit는 iOS의 오디오/비디오 기능을 사용하기 때문에, 마이크와 카메라의 사용 권한을 부여해야 합니다.
권한 부여 조작 방법: iOS 프로젝트의 Info.plist 의 제1 급 <dict>디렉토리에 아래 2개 항목을 추가하여 시스템 권한 부여 대화창이 팝업될 때 마이크와 카메라의 알림 정보에 각각 대응합니다.
<key>NSCameraUsageDescription</key>
<string>CallingApp은 당신의 카메라 접급 권한이 필요하며, 활성화되어야 레코딩할 때 비디오에 화면이 있습니다.</string>
<key>NSMicrophoneUsageDescription</key>
<string>CallingApp은 당신의 마이크 접근 권한이 필요하며, 활성화되어야 레코딩할 때 비디오에 소리가 있습니다.</string>

단계 4: navigatorObservers 설정

1. Flutter 적용 프레임의 navigatorObservers에 TUICallKit.navigatorObserver를 추가하며, MateriaApp 프레임으로 예를 들면, 코드는 다음과 같습니다.
import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';

......

class XXX extends StatelessWidget { const XXX({super.key});
@override Widget build(BuildContext context) { return MaterialApp( navigatorObservers: [TUICallKit.navigatorObserver], ...... ); } }

단계 5: TUICallKit 컴포넌트 로그인

login 인터페이스를 사용하여 로그인을 완료하며, 구체적인 사용은 다음의 코드를 참고하실 수 있습니다.
import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';
import 'package:tencent_calls_uikit/debug/generate_test_user_sig.dart';
......

final String userID = 'xxxxx'; // 당신의 UserId로 교체하십시오. final int sdkAppID = 0; // 첫 단계에서 콘솔에서 획득한 SDKAppID로 교체하십시오. final String secretKey = 'xxxx'; // 첫 단계에서 콘솔에서 획득한 SecretKey로 교체하십시오.

void login() async {
String userSig = GenerateTestUserSig.genTestSig(userID, sdkAppID, secretKey);
TUIResult result = await TUICallKit.instance.login(sdkAppID, userID, userSig);
if (result.code.isEmpty) { print('Login success'); } else { print('Login failed: ${result.code} ${result.message}'); }
}
매개변수
유형
설명
userID
String
고객은 자신의 업무에 따라 사용자 ID를 사용자 정의하며, 대문자 및 소문자(az AZ), 숫자(0~9) 및 밑줄 및 하이픈만 포함할 수 있습니다.
sdkAppID
int
Tencent RTC 콘솔에서 생성한 오디오/비디오 애플리케이션의 고유 식별자입니다.
secretKey
String
Tencent RTC 콘솔에서 생성한 오디오/비디오 애플리케이션의 SDKSecretKey입니다.
userSig
String
사용자의 신원을 확인하고 악의적인 공격자가 클라우드 서비스 사용 권한을 도용하는 것을 방지하기 위해 사용자 로그인 인증에 사용되는 안전 보호 서명입니다.
주의:
개발 환경: 로컬 개발 디버깅 단계에 있다면, 로컬 GenerateTestUserSig.genTestSig 함수를 사용하여 userSig를 생성할 수 있습니다. 이 방법에서 SDKSecretKey는 역컴파일에 의해 쉽게 해독되며, 암호키가 유출되면 공격자가 당신의 Tencent Cloud 트래픽을 도용할 수 있습니다.
생산 환경: 프로젝트 출시 예정이면 서버 측 UserSig 생성 방식을 사용하시기 바랍니다.

단계 6: 첫 번째 통화를 하기

호출자와 피호출자가 로그인에 성공한 후, 호출자는 TUICallKit의 call 방법을 통해 호출하고, 통화 유형과 피호출자의 userId를 지정하면, 오디오 또는 비디오 통화를 개시할 수 있고, 피호출자는 이때 통화 요청을 받을 수 있습니다.
import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';
......

void call() {
TUICallKit.instance.call('vince', TUICallMediaType.audio);
}


호출자
피호출자

더 많은 특성

자주 받는 질문들

통합 및 사용 중에 문제가 있으면 자주 받는 질문들을 참고하시기 바랍니다.

교류와 피드백

요구사항 또는 피드백이 있는 경우 info_rtc@tencent.com으로 연락하시기 바랍니다.