要使用 MusicPlayer API,您只需将AudioToolBox
框架添加到您的项目中,然后将 AudioToolbox.h 导入您的项目中:
#import <AudioToolbox/AudioToolbox.h>
如果您查看该文件,您会看到它#includes 所有必要的位以使用 AUGraph 等。如果您需要做一些额外的事情,例如记录或访问 AUGraph 输出,那么您将需要导入其他框架。
我为使用 MusicPlayer API 的其他人发布了一个演示项目——你可能会发现它很有用。
更新:
AudioToolbox 是一种方便的“瑞士军刀音频”类型的东西。如果您查看 AudioToolbox.h 它链接到 MusicPlayer.h 并且链接到一些核心音频 + 音频单元的东西。MusicDeviceMIDIEvent
在 MusicPlayer.h 中定义,因此如果您在构建设置中包含了 AudioToolBox 框架,
我在这里有“LoadPresetDemo”示例。对于音频,它只包含 AudioToolbox 和 AVFoundation。作为现实检查,我删除了 AVFoundation 链接,编译并修复了导致的错误 - 所有这些都与设置音频会话和输出采样率等有关,然后我在模拟器中编译并运行它,它运行良好。我认为 Apple 包含了所有这些来演示如何处理音频应用程序进入和离开后台(参见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>
#endif