本文档将介绍如何快速跑通 ARTC 示例项目,体验实时音视频功能。
示例源码下载
阿里云提供了开源示例项目,用于演示 ARTC SDK 的 API 使用方法,帮助开发者更直观地理解和集成 SDK 的各项功能,Harmony示例项目仓库。
前提条件
在运行示例项目之前,请确保开发环境满足以下要求:
开发工具:DevEco Studio 5.0.3.900 Release 或以上版本;获取配套 API Version 12的 HarmonyOS NEXT SDK 或以上版本。
测试设备:获取配套 API Version 12的 HarmonyOS NEXT 5.0.0.102 操作系统或以上版本,支持音视频的鸿蒙设备,且已开启“允许调试”选项。
网络环境:需要稳定的网络连接。
应用准备:获取实时音视频应用的AppID和AppKey,详情请参见创建应用。
操作步骤
步骤一:获取示例项目
克隆 ARTC 示例项目到本地:
git clone https://github.com/MediaBox-Demos/amdemos-artc.git注意:该仓库包含 ARTC SDK 的多个 Native 平台的示例项目,其中 Harmony 平台示例项目位于Harmony/ARTCExample目录下。
示例项目中包含了在客户端生成 Token 的相关代码以帮助您进行测试。
下面将介绍Harmony/ARTCExample项目的文件结构。
├── Harmony // 鸿蒙平台工程根目录
│ ├── ARTCExample // Harmony API Example 工程
│ │ ├── entry // Demo 入口工程(ArkTS)
│ │ │ ├── src/main/ets
│ │ │ │ ├── common // 通用组件 & 工具
│ │ │ │ │ ├── components // 通用 UI 组件(标题栏等)
│ │ │ │ │ ├── keycenter // KeyCenter,封装 AppId/AppKey/Token 生成
│ │ │ │ │ │ ├── ARTCTokenHelper.ets // Token 工具类(配置 AppId/AppKey)
│ │ │ │ │ │ └── GlobalConfig.ets // 全局配置单例
│ │ │ │ │ ├── utils // 权限、沙箱文件管理等
│ │ │ │ │ └── ConstantsData.ets / Constants.ets // 常量定义
│ │ │ │ ├── entryability // 程序入口 Ability
│ │ │ │ ├── manager // 页面栈管理、导航管理
│ │ │ │ │ └── PageStackCenter.ets // 导航栈中心
│ │ │ │ ├── model // 首页模块配置
│ │ │ │ │ ├── ModuleInfo.ets // 模块信息数据模型
│ │ │ │ │ ├── ModuleManager.ets // 模块管理器(单例)
│ │ │ │ │ └── ModuleRegistry.ets // 模块注册中心(在此控制首页显示哪些功能)
│ │ │ │ └── pages // 业务页面
│ │ │ │ ├── Index.ets // 首页(模块入口聚合)
│ │ │ │ ├── SettingsDialog.ets // 设置弹窗(配置 AppId/AppKey/UserId)
│ │ │ │ ├── quickstart/ // 快速开始示例
│ │ │ │ │ ├── TokenGenerate.ets // Token 生成及入会
│ │ │ │ │ ├── VideoCall.ets // 视频通话
│ │ │ │ │ └── VoiceChat.ets // 语聊房
│ │ │ │ ├── basicusage/ // 基础功能示例
│ │ │ │ │ ├── VideoBasicUsage.ets // 视频基础用法
│ │ │ │ │ ├── AudioBasicUsage.ets // 音频基础用法
│ │ │ │ │ ├── CameraPage.ets // 摄像头控制
│ │ │ │ │ ├── ScreenSharePage.ets // 屏幕共享
│ │ │ │ │ ├── SEIPage.ets // SEI 信令
│ │ │ │ │ ├── DataChannelMessagePage.ets // 数据通道消息
│ │ │ │ │ ├── PlayAudioFilesPage.ets // 播放音频文件
│ │ │ │ │ ├── StreamMonitoringPage.ets // 远端流监控
│ │ │ │ │ └── VoiceChangePage.ets // 变声/音效
│ │ │ │ └── advancedusage/ // 进阶功能示例
│ │ │ │ ├── RecordingPage.ets // 本地录制
│ │ │ │ ├── PictureInPicturePage.ets // 画中画
│ │ │ │ ├── PreJoinChannelTestPage.ets // 入会前测试
│ │ │ │ ├── CustomAudioCapturePage.ets // 自定义音频采集
│ │ │ │ ├── CustomAudioRenderPage.ets // 自定义音频播放
│ │ │ │ ├── CustomVideoCapturePage.ets // 自定义视频采集
│ │ │ │ ├── CustomVideoRenderPage.ets // 自定义视频渲染
│ │ │ │ ├── ProcessAudioRawDataPage.ets // 获取原始音频数据
│ │ │ │ ├── ProcessVideoRawDataPage.ets // 获取原始视频数据
│ │ │ │ ├── HEVCPage.ets // H.265 编解码
│ │ │ │ ├── PublishLiveStreamPage.ets // 推流旁路直播
│ │ │ │ ├── LiveLinkMicPage.ets // 连麦直播
│ │ │ │ ├── OriginAudioDataWrap.ets // 原始音频数据 NAPI 示例
│ │ │ │ ├── OriginVideoDataWrap.ets // 原始视频数据 NAPI 示例
│ │ │ │ └── pipManager/ // 画中画管理器
│ │ │ ├── src/main/cpp // 原生 C++ 模块(NAPI)
│ │ │ │ ├── CMakeLists.txt // NAPI 构建配置
│ │ │ │ ├── napi_init.cpp // NAPI 导出入口
│ │ │ │ ├── origin_audio_data.cpp/.h // 原始音频数据 NAPI 接口实现
│ │ │ │ ├── origin_video_data.cpp/.h // 原始视频数据 NAPI 接口实现
│ │ │ │ └── types/ // NAPI 使用的结构体定义
│ │ │ ├── src/main/resources // 资源文件(图片、字符串等)
│ │ │ └── module.json5 // Entry 模块配置
│ │ ├── key // 签名证书
│ │ ├── hvigor/ // 构建配置
│ │ ├── oh-package.json5 // 工程依赖声明
│ │ └── ...
步骤二:配置示例项目
使用 DevEco Studio 打开
Harmony/ARTCExample文件夹。配置项目的AppID和AppKey:打开
Harmony/ARTCExample/entry/src/main/ets/common/keycenter/ARTCTokenHelper.ets文件将从控制台获取的AppID和AppKey填入。
// Index.ets // 实时音视频AppID @Local appId: string = "<实时音视频AppID>"; // 实时音视频AppKey @Local appKey: string = "<实时音视频AppKey>";
步骤三:编译并运行示例项目
连接鸿蒙开发设备,在 DevEco Studio 中选中您的开发设备,选择 entry 模块。

为项目设置自动签名。
依次点击
File -> Project Structure -> Signing Configs,在串口中点击Automatically generate signature。等待自动签名结束后,点击 OK 即可。如果之前没有登录,请点击界面提示的
Sign In使用您的华为账号登录。
在 DevEco Studio 中,点击 Run 进行编译运行,编译成功后即可在您的设备中安装
ARTCExample应用。