我已经实现了类似于iOS Developer's Library上的AUGraph。但是,在我的应用程序中,我需要能够以不同的采样率(可能是两个不同的采样率)播放声音。
我一直在浏览Apple的文档,但没有找到在运行时设置采样率的方法。我一直在考虑三种可能的解决方法:
这些方法在处理器上看起来都很笨重。
在运行时更改AUGraph的采样率的最佳方法是什么?
答案 0 :(得分:1)
通常为#1。
使用您列出的其他方法,您的计划可能有特殊需要或好处:
但是,如果您只需要使用SRC播放并且不考虑最低延迟,则可能需要尝试使用AudioQueue。
答案 1 :(得分:0)
我很确定它无法在运行时完成。解决方案#2是你最好的选择,以及#3。对于采样率转换,libsndfile可能可以根据您的需要进行调整。
答案 2 :(得分:0)
如果您不希望延迟拆除和重建音频图表,则可能需要重新采样声音数据(除了一个采样率之外的所有采样率)。
您可以在开始播放声音数据之前对其进行重新取样,或者将实时重新取样器作为音频图形的一部分运行。许多iOS音乐应用程序将后者作为内置基于采样器的合成器单元的一部分,因此该设备具有足够的计算能力。