本ドキュメントでは、ARTC Linux SDK の C++ サンプルプロジェクトをすばやく実行し、リアルタイム音声・映像機能を試す方法について説明します。
サンプルソースコードの取得
最新版の ARTC Linux SDK を、「SDK のダウンロード」からダウンロードします。Linux SDK のアーカイブを展開し、Cpp フォルダを開きます。このフォルダには以下のファイルおよびディレクトリが含まれます:
├── Release
│ ├── include ## このフォルダにはインクルードするヘッダーファイルが格納されています
│ │ ├── AliRTCEngineCentralInterface.h ## マルチプロセスモード用
│ │ ├── AliRTCSdkDefineCentral.h ## マルチプロセスモード用
│ │ ├── AliRTCEngineInterface.h ## シングルプロセスモード用
│ │ ├── AliRTCLinuxSdkDefine.h ## シングルプロセスモード用
│ │ ├── AliRTCMediaPlayerInterface.h
│ │ └── IAliRTCEngine.h
│ └── lib ## このフォルダにはリンク対象の動的ライブラリが格納されています
│ ├── AliRtcCoreService ## マルチプロセスモード用
│ ├── libAliRtcCentralEngine.so ## マルチプロセスモード用
│ ├── libAliRtcLinuxEngine.so ## シングルプロセスモード用
│ └── libonnxruntime.so.1.16.3
└── Demo ## シンプルなサンプル
├── CMakeLists.txt
├── fake_linux_event_listener.cc ## 音声ストリームおよびビデオストリームのストリームフェッチング用コールバックを含む
├── fake_linux_event_listener.h
└── simple_main.cc ## メインのデモファイル。初期化、チャンネルへの参加、およびアップストリーミングを実装していますRelease フォルダには、include フォルダ内のヘッダーファイルと lib フォルダ内の動的ライブラリが含まれています。すべての API およびデータ構造はヘッダーファイルで宣言されています。リンク時に正しいライブラリパスを設定する必要があります(例:export LD_LIBRARY_PATH=./lib)。
Demo フォルダにはシンプルなサンプルプロジェクトが含まれています。メインファイル simple_main.cc では、初期化、チャンネルへの参加、およびアップストリーミングの手順が示されています。fake_linux_event_listener ファイルには、音声ストリームおよびビデオストリームのストリームフェッチング用コールバックが記述されています。
前提条件
サンプルプロジェクトを実行する前に、以下の要件を満たしていることを確認してください。
アプリケーションのセットアップ:ApsaraVideo Real-time Communication アプリケーション向けに AppID および AppKey を取得します。詳細については、「開発パラメーターの取得」をご参照ください。
開発環境:g++ バージョン 4.8 以降がインストールされていることを確認します。
操作手順
プロジェクトの設定
Demo/simple_main.cc を編集し、AppID および AppKey を設定します。

コアサービスライブラリのパスを設定します:

ライブラリは以下のパスに配置されています:AliRTCSDK_Linux-7.10.2/Cpp/Release/lib/AliRtcCoreService
Demo フォルダに移動してアプリケーションをビルド
Demo フォルダに移動し、以下のコマンドを実行します。正常にビルドが完了すると、実行可能ファイル linux_sdk_simple_demo が生成されます。
# Cpp/Demo フォルダに移動
cd Cpp/Demo
# ビルド用ディレクトリを作成
mkdir build && cd build
# アプリケーションをビルド
cmake ..
makeアプリケーションの実行
./linux_sdk_simple_demo を実行します。
ターミナルに以下の出力が表示された場合、アプリケーションはチャンネルに正常に参加し、アップストリーミングおよびストリームフェッチングを開始したことを意味します。
# チャンネルへの参加に成功しました
[JoinChannelStateChanged] state: success
# アップストリーミングに成功しました
[AudioPublishStateChanged] oldState:0, newState:2, elapseSinceLastState:0, channelId:9090
[VideoPublishStateChanged] oldState:0, newState:2, elapseSinceLastState:0, channelId:9090
[DualStreamPublishStateChanged] oldState:0, newState:2, elapseSinceLastState:0, channelId:9090
[AudioPublishStateChanged] oldState:2, newState:3, elapseSinceLastState:292, channelId:9090
[VideoPublishStateChanged] oldState:2, newState:3, elapseSinceLastState:293, channelId:9090
[DualStreamPublishStateChanged] oldState:2, newState:3, elapseSinceLastState:293, channelId:9090
# リモートユーザー abcd がチャンネルに参加しました
OnRemoteUserOnLineNotify userid: abcd
# リモートユーザー abcd からの音声およびビデオストリームを受信しました
[AudioSubscribeStateChanged] uid:abcd, oldState:3, newState:1, elapseSinceLastState:38865, channelId:9090
[VideoSubscribeStateChanged] uid:abcd, oldState:3, newState:1, elapseSinceLastState:38865, channelId:9090注: AudioFormatMixedPcm を選択すると、アプリケーションがチャンネルに参加した直後にオーディオ コールバックが開始されます。これは、リモート ユーザーが存在しない場合でも同様です。一方、AudioFormatPcmBeforeMixing を選択すると、他のユーザーがチャンネルに参加して音声ストリームを配信した場合にのみオーディオ コールバックが開始されます。
会議からの退出
チャンネルを退出するには、ターミナルで exit と入力し、アプリケーションの終了を待ちます。