本文檔將介紹如何快速跑通ARTC Linux SDK C++版本樣本專案,體驗即時音視頻功能。
樣本源碼擷取
在SDK下載中擷取最新版本的ARTC Linux SDK。解壓Linux SDK壓縮包,開啟解壓後的檔案夾裡面的Cpp檔案夾,交付內容如下:
├── Release
│ ├── include ##此目錄包含需要引入的標頭檔
│ │ ├── AliRTCEngineCentralInterface.h ##多進程版本使用
│ │ ├── AliRTCSdkDefineCentral.h ##多進程版本使用
│ │ ├── AliRTCEngineInterface.h ##單進程版本使用
│ │ ├── AliRTCLinuxSdkDefine.h ##單進程版本使用
│ │ ├── AliRTCMediaPlayerInterface.h
│ │ └── IAliRTCEngine.h
│ └── lib ##此目錄包含需要連結的SDK動態庫
│ ├── 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 ##demo主體,包含初始化、入會、推流等操作Release目錄包含需要引入的標頭檔(include)、需要連結的SDK動態庫(lib)。API與資料結構均在include目錄中的各標頭檔中聲明,要求配置正確的動態庫連結地址,如:export LD_LIBRARY_PATH=./lib
Demo目錄提供簡易常式,其中simple_main.cc是demo主體,包含初始化、入會、推流等操作,fake_linux_event_listener包含音、視頻拉流的回調邏輯。
前提條件
在運行樣本專案之前,請確保滿足以下要求
應用準備:擷取即時音視頻應用的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模式時,無論是否有遠端使用者在會上,入會時就會有音頻回調。選擇AudioFormatPcmBeforMixing時,只有會上有其他使用者,且其他使用者在推音頻流時,才會觸發音頻回調。
退出離會
想要退出離會時,在終端輸入exit,等待其自行退出即可。