演示代码运行正常,但是当我尝试在从头开始构建的测试项目中重用.aupreset文件时,Trombone.aupreset不起作用.深入研究.我发现.aupreset文件中的音频样本路径看起来很奇怪.
pList中的路径(下图)指向:
file://localhost//library/Audio/Sounds/Tbone/1a%23.caf
但这不是正确的路径 – 根据项目目录结构.没有“库/音频”目录 – 虚拟或真实.所以我很困惑. Apple演示工作正常,但我从头开始项目没有(尝试加载示例时得到错误-43).加载样本的代码(在底部)没有做任何事情来在运行时重新激活路径.
有谁看到我在这里误解了什么? – 谢谢!
// Load a synthesizer preset file and apply it to the Sampler unit- (Osstatus) loadSynthFromPresetURL: (NSURL *) presetURL {CFDataRef propertyResourceData = 0;Boolean status;SInt32 errorCode = 0;Osstatus result = noErr;// Read from the URL and convert into a CFData chunkstatus = CFURLCreateDataAndPropertIEsFromresource ( kcfAllocatorDefault,(__brIDge CFURLRef) presetURL,&propertyResourceData,NulL,&errorCode );NSAssert (status == YES && propertyResourceData != 0,@"Unable to create data and propertIEs from a preset. Error code: %d '%.4s'",(int) errorCode,(const char *)&errorCode);// Convert the data object into a property ListCFPropertyListRef presetPropertyList = 0;CFPropertyListFormat dataFormat = 0;CFErrorRef errorRef = 0;presetPropertyList = CFPropertyListCreateWithData ( kcfAllocatorDefault,propertyResourceData,kcfPropertyListImmutable,&dataFormat,&errorRef );// Set the class info property for the Sampler unit using the property List as the value.if (presetPropertyList != 0) { result = AudioUnitSetProperty( self.samplerUnit,kAudioUnitProperty_ClassInfo,kAudioUnitScope_Global,&presetPropertyList,sizeof(CFPropertyListRef) ); CFRelease(presetPropertyList);}if (errorRef) CFRelease(errorRef);CFRelease (propertyResourceData);return result;}解决方法 我遇到了同样的问题,经过2个小时的比较“加载预设”-Demo和我的代码后,我找到了解决方案:
添加声音文件夹时检查选项:
>复制项目>为任何添加的文件夹创建文件夹引用 – 添加的文件夹将为蓝色,如“加载预设”-demo-project!
总结以上是内存溢出为你收集整理的xcode – iOS LoadPresetDemo示例代码中的AU Preset(.aupreset)资源路径问题全部内容,希望文章能够帮你解决xcode – iOS LoadPresetDemo示例代码中的AU Preset(.aupreset)资源路径问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)