我正在编写一个托管苹果系统提供的音频单元的应用程序。我想在用户拨入音频单元后保存它们的参数状态,并在用户再次加载音频单元时恢复它们。
我无法从主机那里找到执行此操作的方法。我已经看到 AU 应该有 SaveState() 和 RestoreState() 方法,但是如何访问它们?
基本上,您可以通过使用
kAudioUnitProperty_ClassInfo
或 AudioUnitGetProperty()
(分别用于保存和恢复)获取或设置 AudioUnitSetProperty()
属性来处理它们。
您可以在 dfx-au-utilities-preset-files.c 文件中的方法
RestoreAUStateFromPresetFile()
和 SaveAUStateToPresetFile_Bundle()
中的 DestroyFX Audio Unit 实用程序库 中查看此示例实现。
我按照规定使用 kAudioUnitProperty_ClassInfo。然而,对于 Apple 提供的 AU,我似乎只能在创建音频图后第一次保存参数。对于非苹果设备,它工作正常,我可以在每次保存时重复保存新值。有人可以在这里给我见解吗?非常感谢。
杰夫·弗雷