MusicPlayer API を使用するには、AudioToolBox
フレームワークをプロジェクトに追加してから、プロジェクトに AudioToolbox.h をインポートするだけです。
#import <AudioToolbox/AudioToolbox.h>
そのファイルを見ると、AUGraph などを操作するために必要なすべてのビットが #include されていることがわかります。記録や AUGraph 出力へのアクセスなど、何か追加の操作が必要な場合は、追加のフレームワークをインポートする必要があります。
私は、MusicPlayer API を使用する他の誰かのためにデモ プロジェクトを投稿しました。
アップデート:
AudioToolbox は、一種の便利な「オーディオ用スイス アーミー ナイフ」タイプのものです。AudioToolbox.h を見ると、MusicPlayer.h にリンクしており、Core Audio + Audio Unit のものにリンクしています。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