1. SDK のインポート
ここでは、主にTencent Cloud TRTC SDK(QTのWindowsバージョンおよびMacバージョン) をプロジェクトに素早く統合する方法を紹介します。以下の手順に従って設定すれば、SDKの統合作業を素早く完了できます。
Windows端末の統合
開発環境要件
OS:Windows 7以上のバージョン。
開発環境:Visual Studio 2015以上のバージョン、Visual Studio 2015の使用をお勧めします。VS関連のQT開発環境をすでに設定していることが前提になります。
説明:
操作手順
このセグメントでは、簡単なQTプロジェクトを作成し、Visual Studioプログラムの中でC++ SDKを統合する方法を紹介します。
ステップ1: SDKのダウンロード
SDKのダウンロードを行い、解凍して開きます。
ここの例では、 SDKディレクトリのC++バージョンのSDKファイルをインポートしさえすればOKです。64ビットの場合、SDKは
./SDK/CPlusPlus/Win64/
にあり、主に次のいくつかの部分が含まれます。ディレクトリ名 | 説明 |
include | 詳細なインターフェースの説明がついたAPIヘッダーファイル |
lib | 編集用の.libファイルおよび実行時にローディングする.dllファイル |
ステップ2:プロジェクトの新規作成
Visual Studio 2015を例にとると、ローカルですでにQTおよびVS開発プラグインをインストール済みという前提で、Visual Studioを開きます。下図のように、
TRTCDemo
という名前のQTアプリケーションを新規作成します。
クイックインテグレーションの方法を説明しやすくするため、ガイドの中でQt Widgets Applicationタイプを選択し、OKをクリックします。次のページでNextをクリックし、プロジェクトを作成すれば完了です。ステップ3:ファイルのコピー
下図のように、解凍後のSDKフォルダをTRTCDemo.vcxprojが存在するディレクトリ下にコピーします。
説明:
この時点ではC++ SDKだけが必要なため、 SDKパスのCSharpディレクトリを削除しても構いません。
ステップ4:プロジェクト設定の修正
TRTCDemoの属性のページを開きます。ソリューションのResource Manager >TRTCDemoプログラムの右クリックメニュー>属性と進みます。次のステップにしたがって設定してください。
1. Includeのディレクトリの追加:
下図のように、C/C++ > 通常 > Includeディレクトリの追加で、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を押下して動作させ、下図のとおり、SKDのバージョン番号を印刷します。
Mac端末統合
開発環境要件
オペレーティングシステム:Mac10.10以上のバージョン。
開発環境:Qt Creator 4.10.3以上のバージョン。Qt Creator 4.13.3以上のバージョンの使用を推奨。
開発フレームワーク:Based on Qt 5.10以上。
操作手順
ここでは簡単なQTTest項目の作成を例に、Qt CreatorプロジェクトでC++クロスプラットフォームSDKを統合する方法をご紹介します。
1. C++クロスプラットフォームSDKのダウンロード
1.1 SDKをダウンロードし、ファイルを解凍して開きます。
1.2 QTTestと同じクラスのディレクトリ下で空のSDKフォルダを作成し、SDK内の
TXLiteAVSDKTRTCMacx.x.x/SDK/TXLiteAVSDKTRTC_Mac.framework
を、QTTestプロジェクトディレクトリと同じクラスのディレクトリにあるSDKフォルダにコピーします。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_MacLIBS += -framework AccelerateLIBS += -framework AudioUnitINCLUDEPATH += $$PWD/../SDK/TXLiteAVSDK_TRTC_Mac.framework/Headers/cpp_interfaceINCLUDEPATH += $$PWD/base/util/mac/usersig/includeDEPENDPATH += $$PWD/base/util/mac/usersig/include
3. カメラおよびマイクの使用権限の承認
SDKではカメラおよびマイクを使用しますので、対応する
Info.plist
に該当する権限申請説明を追加する必要があります。NSMicrophoneUsageDescription:マイクの使用申請NSCameraUsageDescription:カメラの使用申請
下図に示すとおり:
4. TRTC SDKの引用
ヘッダーファイル
#include "ITRTCCloud.h"
によって直接引用することができます。ネームスペースの利用:C++のすべてのプラットフォームのインターフェースのメソッド、タイプなどはいずれもtrtcネームスペースで定義されています。コードをより簡潔にするため、trtcネームスペースを直接使用することをお勧めします。
説明:
ここまでで統合作業はすでに完了していますので、プロジェクトをコンパイルして実行できます。 Demoを使用するためのクロスプラットフォームSDKのAPIの詳細については、QTDemoをダウンロードしてご参照ください。
よくあるご質問
次のエラーが生じた場合は、前述のプログラム設定にしたがって、SDKヘッダーファイルのディレクトリが正しく追加されているかチェックしてください。
fatal error C1083: includeファイルを開くことができません: “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) の中に引用されています