C++

更新时间:
复制为 MD 格式

本文档将介绍如何快速跑通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.ccdemo主体,包含初始化、入会、推流等操作,fake_linux_event_listener包含音、视频拉流的回调逻辑。

前提条件

在运行示例项目之前,请确保满足以下要求

  • 应用准备:获取实时音视频应用的AppIDAppKey,详情请参考获取开发参数

  • 开发环境:确保g++版本在4.8以上。

操作步骤

配置项目

编辑Demo/simple_main.cc文件,配置appidappkey。

image.png

配置核心服务库地址:

image.png

相关库位于: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,等待其自行退出即可。