• peter
    2022-08-17 来自北京
    请教老师几个问题: Q1:SDK层的MediaRecorder是对AudioRecord的封装吗? Q2:NDK层的AAudio是基于OpenSL ES吗?(或者说,AAudio是对OpenSL ES的封装吗) Q3:SDK层的方法,都是基于NDK层的方法吗? 比如SDK层的MediaRecorder是基于NDK层的AAudio或OpenSL ES。 Q4:默认的麦克风等于主麦克风吗? Q5:AEC是什么意思? 文中有一句“在 VOIP 场景下如果使用硬件 AEC 的话”,其中的AEC什么意思? Q6:单声道采集,转换为立体声,也是伪立体声吧。是把单声道的数据拷贝一份变成另外一个声道吗? Q7:read函数的数组类型,需要根据audioFormat来确定吧。如果audioFormat是8位,应该用byte[], 如果audioFormat是16位,则应该用short[],是这样吗? Q8:播放PCM的命令中,哪一项是表示PCM? ffplay -f s16le -sample_rate 44100 -channels 1 -i vocal.pcm,s16le表示什么意思?表示PCM吗? Q9:PCM转WAV的命令中,哪一项是表示WAV? ffmpeg -f s16le -sample_rate 44100 -channels 1 -i vocal.pcm -acodec pcm_s16le vocal.wav,哪一项是表示wav?pcm_s16se吗? Q10:用两种采集方法,是播放器项目会同时采用这两种吗? 选取了 SDK 层的 AudioRecord 和 Native 层的 Oboe 采集音频的方法,只是为了分别说明这两种方法吗? 还是说播放器项目会同时采用这两种方法来采集音频?(同时用两种,好像没有道理)
    展开

    作者回复: A1: 是的; A2:不是 A3:我觉得不是,没有了解过特别细节; A4:是的,一般是手机硬件底部的麦克风; A5:回声消除,可以自行搜索; A6:一般通过混响或者其他的效果器变为双声道,否则没意义; A7:不是,audioFormat是16位,仍然可以使用byte数组的读出方式; A8:vocal.pcm是那个pcm文件,s16le代表Sint16 little endian A9:vocal.wav是目标文件 A10:播放器项目是不会开启路引起的,一般选用一种就可以了,不过看场景,比如K歌场景在项目中会同时集成多种的,根据一些配置来选择使用哪一种。

    
    
  • Loy
    2023-04-06 来自福建
    老师,你好。低延时耳返需要底层特殊定制吗?
    
    