# 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及以上。