我正在研究开发一个iPhone应用程序,它可能会涉及对标准手机麦克风收到的音频进行“简单”分析。具体来说,我对麦克风图像的高点和低点感兴趣,而且真正的一切都与我无关。
有没有这样做的应用程序(只是让我可以看到它的能力)?我应该在哪里开始使用这些代码?
感谢您的帮助。iPhone音频分析
7
A
回答
9
请看Audio Queue framework。这是我用它来获得一个高水位标记:
AudioQueueRef audioQueue; // Imagine this is correctly set up
UInt32 dataSize = sizeof(AudioQueueLevelMeterState) * recordFormat.mChannelsPerFrame;
AudioQueueLevelMeterState *levels = (AudioQueueLevelMeterState*)malloc(dataSize);
float channelAvg = 0;
OSStatus rc = AudioQueueGetProperty(audioQueue, kAudioQueueProperty_CurrentLevelMeter, levels, &dataSize);
if (rc) {
NSLog(@"AudioQueueGetProperty(CurrentLevelMeter) returned %@", rc);
} else {
for (int i = 0; i < recordFormat.mChannelsPerFrame; i++) {
channelAvg += levels[i].mPeakPower;
}
}
free(levels);
// This works because one channel always has an mAveragePower of 0.
return channelAvg;
您可以在任一分贝无尺度(与kAudioQueueProperty_CurrentLevelMeterDB)得到的峰值功率,或简称为在区间[0.0,1.0](带有kAudioQueueProperty_CurrentLevelMeter)的浮动。
+0
明智的答案和示例代码非常有用。 – 2011-07-30 08:53:04
2
检查'SpeakHere'示例代码。它会告诉你如何使用AudioQueue API录制音频。它还包含一些代码来分析音频实时显示电平表。
您可能实际上可以使用大部分电平表代码来响应“高点”和“低点”。
0
AurioTouch示例代码在麦克风输入上执行傅立叶分析 。可能是一个很好的起点:
https://developer.apple.com/iPhone/library/samplecode/aurioTouch/index.html
可能是矫枉过正为您的应用。
3
别忘了先激活级计量为AudioQueue:
UInt32 d = 1;
OSStatus status = AudioQueueSetProperty(mQueue, kAudioQueueProperty_EnableLevelMetering, &d, sizeof(UInt32));
相关问题
- 1. HTML5音频 - 分析输出?
- 2. Android中的音频分析
- 3. 分析音频文件java
- 4. LibGDX,从Android MP3音频频谱分析
- 5. iphone音频流
- 6. 打开音频开关的铬音频分析仪
- 7. 路由iPhone音频声音
- 8. Phonegap录音音频iPhone 4
- 9. C/C++ PCM开源音频分析器
- 10. 跨平台音频分析库
- 11. 活页乐谱的音频分析
- 12. iPhone音频资源
- 13. iPhone音频效果
- 14. iPhone音频和AFSK
- 15. iPhone音频相移
- 16. iPhone上的音频
- 17. iPhone SDK - 分析/拦截音乐
- 18. 用于展示器的音乐/音频分析的C++库
- 19. 节奏检测通过分析音频频谱
- 20. iPhone音频超级安静
- 21. iPhone trim音频录制
- 22. iPhone音频视觉效果
- 23. 捕捉iPhone游戏音频
- 24. iPhone中的音频处理
- 25. 音频框架在iPhone
- 26. 问题播放音频Iphone
- 27. 在iPhone上播放音频
- 28. iPhone SDK音频混合器
- 29. iPhone SDK - HTML直播音频
- 30. iPhone蓝牙音频API
好极了,谢谢大家的回复。我还没有到处解决应用程序,所以我恐怕我不知道谁的答案是正确的,直到我做。 – 2010-01-22 16:58:57