使用objective-c获得以分贝为单位的声级

时间:2013-02-20 11:14:03

标签: ios objective-c xcode

我是iOS世界的新手。我有个疑问 。我想实现dB SPL表。我有两个按钮1.播放歌曲2.显示分贝值。当我点击播放歌曲按钮时,它正在播放歌曲。我的问题是在播放声音时我必须以分贝为单位显示来自iPhone的声音值。我在谷歌搜索过。但我没有得到任何基本的想法来启动这个应用程序。请让我知道这样做。如果我的问题不明确,请告诉我。

2 个答案:

答案 0 :(得分:3)

您没有指定用于播放的框架。但假设您使用的是AVFoundation,则可以使用AVCaptureAudioChannel averagePowerLevelpeakHoldLevel

您问题的相关属性似乎是averagePowerLevel,这是(来自文档):

  

瞬时平均功率水平,以dB为单位。 (只读)

有关详细信息,请参阅Apple的AVFoundation编程指南,includes a section about audio previews

答案 1 :(得分:0)

您的问题的可能解决方案可能是将其从对数转换为线性比例:

CGFloar linearScale = powf(10.f, logarithmicScale) * 20.f;

其中logarithmicScale是您从AVFoundation获得的值。线性刻度应该更容易可视化!