iOSアプリ開発でオーディオを扱う時には、パワフルなライブラリ/フレームワーク「CoreAudio」を使うことができます。
CoreAudioはもともとMacOSXに搭載されていた、高性能なオーディオ処理エンジンです。それがiOS(iPhone/iPad)でも使えるようになり、たくさんのオーディオアプリがAppStoreに公開されています。
iOS版のCoreAudioはMac版と比たらコンパクトで、電話の割り込みへ対応する「AudioSession」や簡単にオーディオを扱える「AVFoundation」といったiOS固有のサービスが存在します。
「CoreAudio」のフレームワークには、
- Audio Toolbox フレームワーク
- Audio Unit フレームワーク
- AVFoundationというフレームワーク
簡易的な再生や録音を行いたい場合は「AVFoundation」
波形レベルでオーディオを扱いたい場合は「Extended Audio File Services」&「AudioUnit」または「AudioQueue」
といった感じで、目的に応じてフレームワークを使い分けます。
Audio Toolbox フレームワーク
オーディオファイルの読み出し、書き出し、再生、変換などを担当します。System Sound Services
30秒以下のサウンドファイルが再生でき、警告音の再生などに使います。簡単にサウンドファイルを再生できます。Audio Queue Services
iOSが対応しているオーディオフォーマットの再生と録音ができます。長さの制限はありません。Audio File Services
オーディオデータをそのまま入力又は出力できます。フォーマットの変換の機能はありません。Audio Session Services
iOS固有のサービスであり、オーディオの動作をコントロールします。iPodが再生している時やサイレントモードの時に音を出すかどうか、電話がかかってきた時やアラームが鳴った時にどう対応するか、などの処理を担当します。Audio Converter Services
オーディオデータのフォーマットの変換をするためのサービスです。Audio Format Services
オーディオのフォーマットに関するサービスです。Extended Audio File Services
「Audio Converter Services」と「Audio Format Services」の機能を組み合わせて、サウンドファイルを簡単に読み書きできるようにしたものです。Audio Unit Processing Graph Services
CoreAudioが持つプラグイン規格「Audio Unit」を複数接続するためのサービスであり、AudioUnitを組み合わせてオーディオ処理を行うことができます。Audio File Stream Services
オーディオデータパケットを解析するもので、インターネット上のMP3をダウンロードしながら再生する、などの処理を実現できます。Audio Unit フレームワーク
「Audio Unit」はオーディオ処理を行うプラグイン規格であり、CoreAudioにはシステムレベルで採用されています。オーディオ入出力、サウンドエフェクト、フォーマット変換、ミキシングなど多数のAudioUnitが存在します。単体でも使えますし、「Audio Unit Processing Graph Services」を使って複数接続して使用することもできます。
オーディオ入出力用のAudioUnitには「Remote IO Unit」というものがあり、iOS端末でオーディオを入出力する時には、ほぼRemote IO Unitが使われます。
Audio Component Services
Audio ComponentというAudioUnitのプラグイン形式を扱うサービスです。AudioUnitを使う時に使用します。Output Audio Unit Services
AudioUnitの処理の開始/停止を担当します。AVFoundationフレームワーク
iOSが対応している全てのフォーマットのオーディオファイルを再生できます。再生、再生位置/ボリュームの変更、停止、一時停止などの基本的な機能を備えています。Objective-Cのインターフェイスを持ち、扱いやすいフレームワークとなっています。
AVAudioPlayerクラス
オーディオファイルの再生を担当します。AVAudioRecorderクラス
オーディオファイルの録音を担当します。AVAudioSessionクラス
AudioSessionの管理を担当します。Related posts: