有谁知道该方法的返回单位是什么:
MediaRecorder.getMaxAmplitude();
Android MediaRecorder API文档仅指示此方法返回自上次调用以来采样点的最大绝对幅度,但未指定单位。它是pascal,milli-pascal,还是其他?
答案 0 :(得分:6)
MediaRecorder.getMaxAmplitude()函数返回无符号的16位整数值(0-32767)。这些值可能是通过在-32768 ... +32767上使用abs()来计算的,类似于正常的CD质量样本值。负幅度只是镜像,因此幅度总是正的。
这些值与任何具体的校准物理属性无关。因此,这些值只是电子输出的16位数字化,从0-100%(该麦克风的最大电压范围)。
麦克风将声压(帕斯卡)线性转换为电压。因此,api报告的值与声压相关,但它们在每个使用的设备上都不同,并且在很大程度上取决于品牌,型号和特定设备(电路,放大器等)。这意味着如果没有声音,则很难判断值将手机麦克风校准为可靠的声压计。
答案 1 :(得分:3)
MediaRecorder.getMaxAmplitude()
值介于0到32,767之间
(注意:32,767是有符号整数的最大值)
单位不标准。
在我的应用中,我通常将任何大于18000的值视为“响亮”,大约是最大值的50%。
答案 2 :(得分:0)
每个不同的设备或麦克风的测量单位都不同。如果您想知道,则必须根据校准的源或测量仪器测试每个特定的麦克风模型。