Cyb*_*ber 5 iphone audio volume objective-c decibel
我正在尝试为iPhone制作一个简单的音量计.我希望音量以dB显示.使用这种turorial时,我的测量结果最高可达78 dB.我读过那是因为16位录音的dBFS频谱仅为96 dB.
我尝试在init函数中修改这段代码:
dataFormat.mSampleRate = 44100.0f;
dataFormat.mFormatID = kAudioFormatLinearPCM;
dataFormat.mFramesPerPacket = 1;
dataFormat.mChannelsPerFrame = 1;
dataFormat.mBytesPerFrame = 2;
dataFormat.mBytesPerPacket = 2;
dataFormat.mBitsPerChannel = 16;
dataFormat.mReserved = 0;
Run Code Online (Sandbox Code Playgroud)
我更改了mBitsPerChannel的值,希望增加录制的位值.
dataFormat.mBitsPerChannel = 32;
Run Code Online (Sandbox Code Playgroud)
将该变量设置为32时,"mAveragePower"函数仅返回0.
那么,我怎样才能衡量更多的分贝?我的所有代码几乎都与上面发布的教程相同.
托马斯先谢谢你
16位音频只有96 的动态范围dB
,但我怀疑你可能会感到困惑dB
,这是一个相对测量,并且dB SPL
,它是声压级的绝对测量.要测量dB SPL,您需要使用某种参考来校准麦克风和音频硬件.一旦校准了输入,那么你的96 动态范围很可能会转换为44 到140 的绝对范围.dB
dB SPL
dB SPL
另请参阅我之前关于SO的类似问题的答案:我如何计算音频dB级别?
注意:dB SPL的定义是相对于20μPa(rms)的声压级.
归档时间: |
|
查看次数: |
5566 次 |
最近记录: |