2012-10-05 14 views
3

可以在iOS上使用AudioUnits创建加载和播放soundfont(或SF2)文件的采样器。这是一个非常棒的功能。问题是我没有看到用于检查soundfont的任何界面,以查看:a)它包含多少个预设,以及b)它包含的预设名称。检查iOS上的soundfont

有可能通过第一装载的音色库以获得当前预置名称为使用AudioUnitSetPropertykAUSamplerProperty_LoadInstrument,然后调用AudioUnitGetPropertykAudioUnitProperty_ClassInfo上采样的采样器。然而,这不是很有效,只会告诉你当前加载的预设的名称。它似乎也没有告诉你soundfont中包含了多少预设。

如何在不使用第三方代码的情况下执行这些操作(当然它本身就是支持的)?

+0

回答我的问题,我找到了解决方法如下。我正在使用'kAudioUnitProperty_ClassInfo'属性来获取当前预设的名称。然后遍历所有预设,直到AudioUnitSetProperty返回一个错误,表示已经达到上一个预设。然后我将所有预设名称放入一个NSArray中并将此数据保存到磁盘。然后我可以简单地从文件中加载它,下次我需要使用相同的声音文件。足以满足我目前的需求。 –

回答