HarmonyOS鸿蒙Next中录音相关:开启回声消除以及系统内录第三方APP声音的问题

HarmonyOS鸿蒙Next中录音相关:开启回声消除以及系统内录第三方APP声音的问题 录音相关:开启回声消除以及系统内录第三方APP声音的问题

使用的录音播放框架为OHAudio, 在C++层开发

  1. 场景为录音+播放
  • 播放设置为AUDIOSTREAM_USAGE_MUSIC

  • 录音如果为普通模式,录音正常,播放正常。但是录音设置为AUDIOSTREAM_SOURCE_TYPE_VOICE_COMMUNICATION模式。则播放异常,系统不再拉数据

  • 如果录音播放都设置为COMMUNICATION模式,则录音播放都正常,且播放声音变小,成功开启系统回声消除

假设我的场景为大部分时间都是播放,偶尔会有录音,且需要开启系统回声消除,那么需要停止录音切换到会议模式,这个是正常的吗。为什么没有在系统内部完成这个动作。因为表面上看录音跟播放是解耦的,但是按照目前的设计模式,跟苹果的audio session有点像了,录音开启回声消除,会影响播放。

  1. 录制第三方APP的声音
  • 将录音模式 设置为AUDIOSTREAM_SOURCE_TYPE_PLAYBACK_CAPTURE,内录第三方APP的播放信号,但是录出来的都是静音。我有录音权限。请问还需要申请其他权限吗。在录音相关的文档没有看到相关说明

更多关于HarmonyOS鸿蒙Next中录音相关:开启回声消除以及系统内录第三方APP声音的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

存在VOICE_COMMUNICATION配置的音频流运行时会自动内置3A。普通录音场景不会开启3A,仅voip通话时才会开启,且暂不支持3A独立开关。

内录app的声音可以使用AVScreenCapture接口,参考文档 链接

第一个的场景目前是需要重启重新设置参数, AUDIOSTREAM_SOURCE_TYPE_PLAYBACK_CAPTURE 只能内录本身app的声音,无法内录第三方app的声音,AVScreenCapture录屏可以只录制声音,可以把图像数据过滤,比如配置宽高为0,或者也可以只拿音频的buffer(这个功耗可能会高点)

目图像宽高设置为0,是采集图像数据范围为0,实际也是在采集运行的,只是功耗较低,录屏现在不需要配置录屏权限,系统是会弹隐私弹窗的; 基本的 microphone 和 media 的read和write权限是需要的

更多关于HarmonyOS鸿蒙Next中录音相关:开启回声消除以及系统内录第三方APP声音的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,录音相关的功能包括回声消除和系统内录第三方APP声音。回声消除功能通过算法减少录音时的回声干扰,提升录音质量。系统内录第三方APP声音则允许用户录制第三方应用程序的声音,适用于需要录制音频的场景。

开启回声消除功能可以通过调用HarmonyOS提供的音频管理API实现,具体接口为AudioManager类中的setEchoCancellation方法。系统内录第三方APP声音则需要使用AudioCapturer类,通过配置音频源为AudioSource.VOICE_RECOGNITION来实现。

需要注意的是,系统内录第三方APP声音可能涉及权限管理,需要确保应用程序具有相应的录音权限。此外,回声消除和系统内录功能的实现可能依赖于硬件设备的具体支持情况。

回到顶部