iOS AUSampler audiounit - EXS 音频文件的文件路径问题?

Posted

技术标签:

【中文标题】iOS AUSampler audiounit - EXS 音频文件的文件路径问题?【英文标题】:iOS AUSampler audiounit - file path issue with EXS audio files? 【发布时间】:2014-01-30 21:48:17 【问题描述】:

按照 Apple 文档 here 我已经能够通过在我的应用程序目录中重新创建例如以下路径,成功地将 GarageBand EXS 采样器乐器加载到我的 ios 应用程序中的 AUSampler:

/Sampler Files/Funk Horn Section/nameofaudio.aif

iOS 在以下目录中查找音频文件:

file:///Library/Application%20Support/GarageBand/Instrument%20Library/Sampler/Sampler%20Files/Funk%20Horn%20Section/'

但是,当我创建自己的 EXS 文件时,这不起作用。如果 GarageBand,它如何知道删除文件路径的第一部分?我什至尝试过创建我的 EXS 乐器,甚至在同一个 GarageBand 目录中创建,但没有区别:

Failed to locate sample '001%20VirusTI%20-%20SeaThr%2314A1B3.aif -- file:///macSSD/Library/Application%20Support/GarageBand/Instrument%20Library/Sampler/Sampler%20Files/VirusTI%20-%20SeaThreeHS%20v2/'

我也尝试使用文本编辑器手动编辑 exs 文件中的文件路径,但没有任何效果。

EXS 乐器在逻辑上表现良好。但我的应用找不到它。

非常感谢任何帮助。

【问题讨论】:

您是否尝试将其放入 app bundle 中? 【参考方案1】:

这里的关键是您的源采样器文件必须引用来自任何这些“触发器”目录结构的样本才能正常工作:

"/声音/" “/采样器文件/” “/苹果循环/” "/EXS 工厂样品/" "/SoundFont 示例/"

您的示例必须存在于包含其中一个触发器的目录路径中,然后该路径必须与您的捆绑包中的完全相同。 iOS 会查找其中一个触发器,然后删除之前的所有内容,并将其用作捆绑包中的新搜索路径来查找您的示例。 这很棘手,但如果您确保一切都井井有条,它将以这种方式工作。

我对此进行了斗争,因为我的样本存储在没有任何这些关键字的地方,因此它永远找不到它们。

【讨论】:

苹果文档的链接:developer.apple.com/library/content/technotes/tn2283/… 该链接并没有真正指定那些确切的目录。它只是说两个平台上的目录必须相同。因此,您在 iOS 中的示例路径必须与构建仪器的 macOS 机器(EXS24 实例)的路径相匹配。我已经使用将样本存储在“basicSamples”中的仪器验证了这一点, Sounds 目录中。 EXS 可以毫无问题地找到它们,如果我使用“EXS Factory Samples”,无法找到它们。

以上是关于iOS AUSampler audiounit - EXS 音频文件的文件路径问题?的主要内容,如果未能解决你的问题,请参考以下文章

CoreAudio:Ausampler 单元复音

如何使用 AudioUnit (iOS) 播放信号?

iOS:当前 AVAudioPlayer 的 AudioUnit

如何正确更新 AUSampler 的 loadInstrument 属性?

如何让 iOS 应用识别为 AudioUnit?

如何正确使用 iOS AudioUnit 渲染回调