gpt4 book ai didi

iphone - 如何从 iOS 上的 AudioQueue 服务获取样本

转载 作者:行者123 更新时间:2023-11-29 04:13:51 24 4
gpt4 key购买 nike

我正在尝试从 AudioQueue 获取样本以在 iPhone 上显示音乐谱(如 iTunes 中的音乐)。

我读了很多帖子,但几乎所有帖子都询问有关在录制而不是播放时获取样本:(

我正在使用 AudioQueue 服务来传输音频。请帮助理解以下几点:1/我在哪里可以访问样本(PCM,非 mp3(我正在使用 mp3 流)2/我应该在自己的缓冲区中收集样本来应用 fft 吗?3/是否可以在不进行fft变换的情况下获得频率?4/如何将缓冲区中的 fft 移位与当前播放的样本同步?

谢谢

更新:

AudioQueueProcessingTapNew

对于 iOS6+,这对我来说效果很好。但 iOS5 呢?

最佳答案

对于播放音频,其想法是在将样本提供给音频队列回调之前获取样本。您可能需要事先将任何压缩音频文件格式转换为原始 PCM 样本。这可以使用 AVFoundation 转换器或文件读取器服务之一来完成。

然后,您可以从用于馈送音频队列回调缓冲区的同一源复制数据帧,并应用 FFT 或其他 DSP 对其进行可视化。

您可以使用 FFT 或一组带通滤波器来获取频率信息,但 FFT 在这方面非常有效。

同步需要通过反复试验来完成,因为 Apple 没有指定确切的音频和 View 图形显示延迟,而 iOS 设备和操作系统版本之间的延迟可能会有所不同。但是短音频队列缓冲区或使用 RemoteIO 音频单元可能会让您更好地控制音频延迟,而 OpenGL ES 将使您更好地控制图形延迟。

关于iphone - 如何从 iOS 上的 AudioQueue 服务获取样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com