# AudioInEarMonitor
**Repository Path**: xu-dengyun/audio-in-ear-monitor
## Basic Information
- **Project Name**: AudioInEarMonitor
- **Description**: 该示例包含了软件音频耳返和硬件音频耳返实现方案,帮助开发者实现音频耳返功能。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-12-31
- **Last Updated**: 2026-01-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 实现音频耳返
## 项目简介
本示例实现了音频耳返功能,指导开发者了解如何在ArkTS侧通过AudioLoopback能力、在Native侧通过native_audiocapturer结合native_audiorenderer能力开启耳返,以及耳返音量的调节。同时,使用AVRecorder和AVPlayer实现耳返音频的录制和播放。
## 效果预览
| ArkTS侧实现返听 | Native侧实现返听 |
|--------------------------------------|-------------------------------------------------|
|
|
|
## 使用说明
1. 安装进入应用。
2. 点击进入对应场景页面,点击录制按钮,打开耳返并进行音频录制;点击暂停/继续按钮,暂停/继续耳返音频录制;点击完成按钮,跳转页面进行音频播放。
a. AudioLoopback实现耳返,仅支持有线耳机。
b. native_audiocapturer+native_audiorenderer实现耳返,支持有线耳机和蓝牙耳机。
## 工程目录
```
├──entry/src/main/cpp // Native层
│ ├──common
│ │ └──SampleInfo.h // 功能实现公共类
│ ├──types
│ │ └──libentry
│ │ ├──index.d.ts // 接口定义
│ │ └──oh-package.json5 // 配置文件
│ ├──AudioRecording.cpp // Native层音频采集及渲染逻辑的实现
│ └──CMakeLists.txt // 编译入口
├──ets // UI层
│ ├──constants
│ │ └──CommonConstants.ets // 常量
│ ├──controller
│ │ ├──AudioLoopbackController.ets // AudioLoopback耳返控制
│ │ ├──AVPlayerController.ets // AVPlayer播放控制
│ │ └──RecorderController.ets // AVRecorder录制控制
│ ├──entryability
│ │ └──EntryAbility.ets // 程序入口类
│ ├──entrybackupability
│ │ └──EntryBackupAbility.ets // 备份恢复类
│ ├──pages
│ │ ├──Index.ets // 首页
│ │ ├──InEarMonitorPage.ets // 耳返及音频录制页面
│ │ └──PlayAudioPage.ets // 音频播放页面
│ └──utils
│ ├──FormatTimeTools.ets // 时间格式转换工具类
│ └──Logger.ets // 日志工具类
└──entry/src/main/resources // 应用静态资源目录
```
## 具体实现
### ArkTS侧开启耳返
1. 通过isAudioLoopbackSupported()查询当前系统是否支持硬件返听。
2. 通过createAudioLoopback()接口创建音频返听器,并调用其enable()方法实现耳返的开启和关闭,以及通过setVolume()方法实现耳返音量的调节。
### Native侧开启耳返
1. 通过OH_AudioStreamBuilder_Create(),并指定OH_AudioStream_Type类型为AUDIOSTREAM_TYPE_CAPTURER,创建输入类型的音频流构造器实例,以及设置采样率、通道数、时延模式等属性。
2. 通过OH_AudioCapturer_Start()启动启动音频采集器,获取音频数据。
3. 通过OH_AudioStreamBuilder_Create(),并指定OH_AudioStream_Type类型为AUDIOSTREAM_TYPE_RENDERER,创建输出类型的音频流构造器实例,以及设置采样率、通道数、时延模式等属性。
4. 通过OH_AudioRenderer_SetVolume()设置音频流音量值,调节音量。
3. 通过OH_AudioRenderer_Start()输出音频数据,实现音频返听。
### 音频录制和播放
1. 使用AVRecorder实现耳返音频的录制。
2. 使用AVPlayer实现录制音频的播放。
## 相关权限
* ohos.permission.MICROPHONE:允许应用使用麦克风。
## 约束与限制
本示例仅支持标准系统上运行,支持设备:直板机。
1. HarmonyOS系统:HarmonyOS 6.0.1 Release及以上。
2. DevEco Studio版本:DevEco Studio 6.0.1 Release及以上。
3. HarmonyOS SDK版本:HarmonyOS 6.0.1 Release SDK及以上。