本文档将介绍如何快速跑通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,等待其自行退出即可。