1. SDK 가져오기

본 문서에서는 Tencent Cloud TRTC SDK(QT의 Windows 및 Mac 버전)를 프로젝트에 빠르게 통합할 수 있는 방법에 대해 소개합니다. 다음 절차에 따라 설정하면 SDK 통합 작업을 신속하게 완료할 수 있습니다.




Windows 통합

개발 환경 요건

운영 체제: Windows 7 이상 버전
개발 환경: Visual Studio 2015 이상 버전, Visual Studio 2015 사용 권장. VS 관련 QT 개발 환경 설정이 완료되어 있어야 합니다.
설명:
VS 관련 QT 개발 환경 설정에 익숙하지 않은 경우, README의 운영 단계 중 4단계를 참고하십시오.

작업 단계

본 섹션에서는 간단한 QT 프로젝트를 생성하는 예시를 통해 Visual Studio에 C++ SDK를 통합하는 방법을 소개합니다.

1단계: SDK 다운로드

SDK 다운로드 후, 압축을 풀고 엽니다. 본 문서의 예시에서는 SDK 디렉터리에 있는 C++ 버전의 SDK 파일만 참조하면 됩니다. 64비트를 예로 들면 SDK 위치는 ./SDK/CPlusPlus/Win64/이며 주로 다음 부분을 포함합니다.
디렉터리 이름
설명
include
자세한 인터페이스 주석이 있는 API 헤더 파일
lib
컴파일용 .lib 파일 및 실행 시 로딩하는 .dll 파일

2단계: 프로젝트 생성

Visual Studio 2015를 예로 들어 QT 및 VS 개발 플러그 인이 로컬에 설치되었다는 전제 하에 Visual Studio를 엽니다. 아래와 같이 'TRTCDemo'라는 새 QT 응용 프로그램을 만듭니다.

신속하게 통합하는 방법을 쉽게 소개하기 위해, 마법사에서 Qt Widgets Application 유형을 선택하고 확인을 클릭한 후 프로젝트가 생성될 때까지 다음 페이지에서 Next를 클릭합니다.

3단계: 파일 복사

다음 이미지와 같이 압축 해제한 SDK 폴더를 TRTCDemo.vcxproj가 있는 디렉터리에 복사합니다.
설명:
현재는 C++ SDK만 필요하며 SDK 경로 아래의 CSharp 디렉터리는 삭제할 수 있습니다.




4단계: 프로젝트 구성 수정

TRTCDemo 속성 페이지를 열어 솔루션 리소스 관리자 > TRTCDemo 프로젝트 오른쪽 메뉴 > 속성을 선택하고 다음 순서에 따라 설정합니다.
1. 포함 디렉터리 추가:C/C++ > 일반 > 인클루젼 디렉터리 추가에 64비트를 예로 들어 SDK 헤더 파일 디렉터리 $(ProjectDir)SDK\CPlusPlus\Win64\include$(ProjectDir)SDK\CPlusPlus\Win64\include\TRTC를 추가합니다 아래와 같습니다:
설명:
32비트인 경우 SDK 헤더 파일 디렉터리를 $(ProjectDir)SDK\CPlusPlus\Win32\include$(ProjectDir)SDK\CPlusPlus\Win32\include\TRTC로 설정해야 합니다.

2. 라이브러리 디렉터리 추가:링커 > 일반 > 라이브러리 디렉터리 추가에서 다음 이미지와 같이 64비트를 예로 들어 SDK 라이브러리 디렉터리 $(ProjectDir)SDK\CPlusPlus\Win64\lib를 추가합니다.
설명:
32비트인 경우 SDK 라이브러리 디렉터리를 $(ProjectDir)SDK\CPlusPlus\Win32\lib 으로 설정해야 합니다.

3. 라이브러리 파일 추가:링커 > 입력 > 종속 항목 추가에서 아래와 같이 SDK 라이브러리 파일 liteav.lib를 추가합니다.

4. copy 명령어 추가:이벤트 생성 > 사후 이벤트 생성 > 명령 라인에 명령어 copy /Y $(ProjectDir)SDK\CPlusPlus\Win64\lib\*.dll $(OutDir)를 복사 및 추가하면 컴파일 완료 후 자동으로 SDK의 .dll 파일이 프로그램 실행 디렉터리에 복사됩니다. 다음 이미지와 같습니다.
설명:
32비트인 경우 복사 명령을 copy /Y $(ProjectDir)SDK\CPlusPlus\Win32\lib\*.dll $(OutDir) 로 추가합니다.




5단계: SDK 버전 번호 출력

1. TRTCDemo.cpp 파일 상단에 헤더 파일 가져오기를 추가합니다. 코드는 다음과 같습니다.
#include "ITRTCCloud.h"
#include <QLabel>
2. TRTCDemo.cpp 파일의 TRTCDemo::TRTCDemo 구조 함수에서 다음 테스트 코드를 추가합니다.
ITRTCCloud * pTRTCCloud = getTRTCShareInstance();
std::string version(pTRTCCloud->getSDKVersion());

QString sdk_version = QString("SDK Version: %1").arg(version.c_str());
QLabel* label_text = new QLabel(this);
label_text->setAlignment(Qt::AlignCenter);
label_text->resize(this->width(), this->height());
label_text->setText(sdk_version);
3. F5를 눌러 실행하면 다음 이미지와 같이 SDK 버전이 출력됩니다.



Mac 통합

개발 환경 요건

운영 체제: Mac10.10 이상 버전
개발 환경: Qt Creator 4.10.3 이상 버전, Qt Creator 4.13.3 이상 사용 권장
개발 프레임워크: Based on Qt 5.10 이상

작업 단계

이 섹션에서는 QTTest 프로젝트 생성을 예시로 TRTC C++ SDK를 Qt Creator의 프로젝트에 통합하는 방법을 소개합니다.

1. C++용 크로스 플랫폼 SDK 다운로드
1.1 SDK를 다운로드한 후 파일의 압축을 풀고 엽니다.
1.2 QtTest 프로젝트 디렉터리에 SDK용 빈 폴더를 생성하고 SDK의 TXLiteAVSDKTRTCMacx.x.x/SDK/TXLiteAVSDKTRTC_Mac.framework를 해당 폴더에 복사합니다.
2. QTTest.pro 구성 QTTest 프로젝트의 디렉터리로 이동하여 텍스트 편집기로 QTTest.pro를 열고 다음 SDK 참조를 추가하십시오.
INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.

LIBS += "-F$$PWD/base/util/mac/usersig"
LIBS += "-F$$PWD/../SDK"
LIBS += -framework TXLiteAVSDK_TRTC_Mac
LIBS += -framework Accelerate
LIBS += -framework AudioUnit

INCLUDEPATH += $$PWD/../SDK/TXLiteAVSDK_TRTC_Mac.framework/Headers/cpp_interface

INCLUDEPATH += $$PWD/base/util/mac/usersig/include
DEPENDPATH += $$PWD/base/util/mac/usersig/include
3. 카메라 및 마이크 권한 요청 TRTC SDK에서 카메라와 마이크를 사용하려면 Info.plist에 권한 요청을 추가해야 합니다. 권한 신청 설명은 다음과 같습니다.
NSMicrophoneUsageDescription: 마이크 사용 권한 신청
NSCameraUsageDescription: 카메라 사용 권한 신청
다음 이미지 참고:


4. TRTC SDK 참조
헤더 파일 #include "ITRTCCloud.h"를 사용하여 SDK를 참조하십시오.
네임스페이스 사용: 크로스 플랫폼 C++ API의 메소드 및 유형은 trtc 네임스페이스에 정의됩니다. 코드를 단순화하려면 trtc 네임스페이스를 사용하는 것이 좋습니다.
설명:
이것으로 통합 프로세스가 완료되고 프로젝트 컴파일을 진행할 수 있습니다. QTDemo를 다운로드하여 SDK의 크로스 플랫폼 API 사용에 대해 참고하십시오.

FAQ

다음 오류가 발생하는 경우 상기 프로그램 설정에 따라 SDK 헤더 파일의 디렉터리를 정확하게 추가했는지 확인합니다.
fatal error C1083: 포함된 파일을 열 수 없습니다. “TRTCCloud.h”: No such file or directory
다음 오류가 발생하는 경우 상기 프로그램 설정에 따라 SDK 라이브러리 디렉터리 및 라이브러리 파일을 정확하게 추가했는지 확인합니다.
error LNK2019: 리졸브할 수 없는 외부 부호 "__declspec(dllimport) public: static class TXString __cdecl TRTCCloud::getSDKVersion(void)" (__imp_?getSDKVersion@TRTCCloud@@SA?AVTXString@@XZ), 해당 부호는 "protected: virtual int __thiscall CTRTCDemoDlg::OnInitDialog(void)" (?OnInitDialog@CTRTCDemoDlg@@MAEHXZ) 함수에 참조됩니다.