我正在尝试使用MusicSequence来控制一个针对iOS5.1的AUSampler实例
该项目引用了项目编译和运行的CoreAudio和AudioToolbox,但在使用错误的Access Xcode调用MusicDeviceMIDIEvent时出现错误,即“未知函数”AppCode。
我看到接口已经改变了,MusicDeviceMIDIEvent现在存在于AudioUnit框架中的MusicDevice.h中。
如果我试图添加一个包含函数的AudioUnit.framework引用,我会得到'framework not found‘,并且项目构建失败。
SE上的其他问题建议我应该使用CoreAudio和AudioToolbox而不是AudioUnit。
此外,我可以看到示例代码'LoadPresetDemo‘在没有AudioUnit框架的情况下可以正常工作,但我不明白为什么。
任何建议或指示都将非常感谢。
发布于 2012-08-12 07:49:49
要使用AudioToolbox.hAPI,您只需将AudioToolBox框架添加到您的项目中,然后在您的项目中导入MusicPlayer:
#import <AudioToolbox/AudioToolbox.h>如果你看了这个文件,你会发现它包含了使用AUGraphs等的所有必要的部分。如果你需要做一些额外的事情,比如录制或者访问AUGraph输出,那么你将需要导入额外的框架。
我为其他使用MusicPlayer应用程序接口的人发布了一个demo project -你可能会发现它的用处。
更新:
AudioToolbox是一种方便的“瑞士军刀音频”类型的东西。如果你查看AudioToolbox.h,它链接到MusicPlayer.h,这链接到一些核心音频+音频单元的东西。MusicDeviceMIDIEvent是在MusicPlayer.h中定义的,所以如果您在构建设置中包含了AudioToolBox框架,
我这里有一个"LoadPresetDemo“的例子。对于音频,它只包含AudioToolbox和AVFoundation。作为现实检查,我删除了AVFoundation链接,编译并修复了导致的错误-所有这些都与设置音频会话和输出采样率等有关,然后我在模拟器中编译并运行它,它运行得很好。我认为苹果包含了所有这些来演示如何处理进入和离开后台的音频应用程序(参见endInterruptionWithFlags方法)。
不管怎样..。如果您已经链接到AudioToolBox并导入了AudioToolbox.h,那么我不知道出了什么问题... ;-)
#define AUDIO_TOOLBOX_VERSION 1060
#include <Availability.h>
#include <TargetConditionals.h>
#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)
#include <AudioToolbox/AudioFile.h>
#include <AudioToolbox/AudioFileStream.h>
#include <AudioToolbox/AudioFormat.h>
#include <AudioToolbox/AudioQueue.h>
#include <AudioToolbox/AudioServices.h>
#include <AudioToolbox/AUGraph.h>
#include <AudioToolbox/AudioConverter.h>
#include <AudioToolbox/ExtendedAudioFile.h>
#include <AudioToolbox/MusicPlayer.h>
#include <AudioToolbox/CAFFile.h>
#if !TARGET_OS_IPHONE
#include <AudioToolbox/AudioFileComponent.h>
#include <AudioToolbox/AudioUnitUtilities.h>
#include <AudioToolbox/AUMIDIController.h>
#include <AudioToolbox/CoreAudioClock.h>
#endif
#else
#include <AudioConverter.h>
#include <AudioFile.h>
#include <AudioFileComponent.h>
#include <AudioFileStream.h>
#include <AudioFormat.h>
#include <AudioQueue.h>
#include <AudioUnitUtilities.h>
#include <AUGraph.h>
#include <AUMIDIController.h>
#include <CAFFile.h>
#include <CoreAudioClock.h>
#include <ExtendedAudioFile.h>
#include <MusicPlayer.h>
#include <AudioServices.h>
#endif// MusicPlayer.h
#include <Availability.h>
#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)
#include <CoreAudio/CoreAudioTypes.h>
#include <AudioUnit/AUComponent.h>
#else
#include <CoreAudioTypes.h>
#include <AUComponent.h>
#endifhttps://stackoverflow.com/questions/11917741
复制相似问题