从目标C中的音量级别计算分贝

时间:2014-04-09 14:17:41

标签: objective-c

我是否可以获得MPMusicPlayerControllerAvAudioPlayer的实例来获取iPod音乐播放器或任何属性的采样率或分贝,从声级获得分贝?

目前我正在使用这个公式:

MPMusicPlayerController * player;
player =  [MPMusicPlayerController iPodMusicPlayer];
float soundValue = 100 * log10 (1-player.volume);

1 个答案:

答案 0 :(得分:0)

我将继续并假设您希望将dB级别与0dB(这将是完整音量)进行比较,因为这是您的代码尝试执行的操作。因此,例如,如果将音量调低至最大值的70%,则为-3dB。如果这是你想要做的,这里是代码:

float soundValue = 20 * log10( player.volume )

无需从1减去音量。音量是介于0.0和1.0之间的浮点数,基本上代表音频最大音量的百分比。由于它总是100%或更低,因此dB值将为0(对于全音量)或负值。正dB值意味着发生放大,这是简单回放无法实现的。

顺便说一下,根据Apple的documentation,在iOS 7中不推荐使用MPMusicPlayerController卷方法。