/System/Library/Frameworks/AudioToolbox.framework
マネージャ Audio Queue Services †
概要 †
この文書は、コアオーディオサービスの一部であるAudio Queue Servicesの(C言語)インタフェースについて説明します。
オーディオキュー(Audio Queue)は、オーディオの再生や録音を利用するためのソフトウェアオブジェクトです。オーディオキューの働きを下にあげます。
■ オーディオハードウェアへの接続
■ メモリ管理
■ オーディオを圧縮する際に必要に応じたコーデックを採用
■ 録音再生装置の仲介、または録音
オーディオキューサービスでは、リニアPCMによるオーディオの再生と録音、また、オーディオの圧縮(AACやApple LossLessなど)を有効にします。また、ユーザによってインストールされているコーデックによるその他の形式での圧縮も可能です。また、再生のスケジュール、複数のオーディオキューの同期、ビデオとオーディオの同期もサポートしています。
ファンクション インデックス †
オーディオキューの制御 †
オーディオキューの生成と処理 †
オーディオキューバッファの処理 †
オーディオキューパラメータの操作 †
オーディオキュープロパティの操作 †
タイミングの処理 †
オフラインレンダリングの実行 †
ファンクション †
AudioQueueAddPropertyListener †
プロパティリスナーのコールバックをオーディオキューに追加する。
OSStatus AudioQueueAddPropertyListener (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
AudioQueuePropertyListenerProc inProc,
void *inUserData
);AudioQueueAllocateBuffer †
オーディオキューオブジェクトにオーディオキューバッファを割り当てるか尋ねる。
OSStatus AudioQueueAllocateBuffer (
AudioQueueRef inAQ,
UInt32 inBufferByteSize,
AudioQueueBufferRef *outBuffer
);AudioQueueAllocateBufferWithPacketDescriptions †
オーディオキューオブジェクトにオーディオキューバッファをパケットディスクリプタのスペースと共に割り当てるか尋ねる。
AudioQueueAllocateBufferWithPacketDescriptions(
AudioQueueRef inAQ,
UInt32 inBufferByteSize,
UInt32 inNumberPacketDescriptions,
AudioQueueBufferRef *outBuffer
);AudioQueueCreateTimeline †
オーディオキューのタイムラインオブジェクトを作成する。
OSStatus AudioQueueCreateTimeline (
AudioQueueRef inAQ,
AudioQueueTimelineRef *outTimeline
);AudioQueueDeviceGetCurrentTime †
オーディオキューに割り当てられているオーディオハードウェアデバイスの現在の時間を取得する。
OSStatus AudioQueueDeviceGetCurrentTime (
AudioQueueRef inAQ,
AudioTimeStamp *outTimeStamp
);AudioQueueDeviceGetNearestStartTime †
リクエスト(パラメータに入力)された開始時間に一番近い開始時間を取得する。
OSStatus AudioQueueDeviceGetNearestStartTime (
AudioQueueRef inAQ,
AudioTimeStamp *ioRequestedStartTime,
UInt32 inFlags
);AudioQueueDeviceTranslateTime †
オーディオキューに割り当てられているオーディオハードウェアデバイスの時間を変換する。
OSStatus AudioQueueDeviceTranslateTime (
AudioQueueRef inAQ,
const AudioTimeStamp *inTime,
AudioTimeStamp *outTime
);AudioQueueDispose †
オーディオキューを処理する。
OSStatus AudioQueueDispose (
AudioQueueRef inAQ,
Boolean inImmediate
);AudioQueueDisposeTimeline †
オーディオキューのタイムラインオブジェクトを処理する。
OSStatus AudioQueueDisposeTimeline (
AudioQueueRef inAQ,
AudioQueueTimelineRef inTimeline
);AudioQueueEnqueueBuffer †
録音用のバッファキューまたは再生用のオーディオキューにバッファを追加する。
OSStatus AudioQueueEnqueueBuffer (
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
UInt32 inNumPacketDescs,
const AudioStreamPacketDescription *inPacketDescs
);AudioQueueEnqueueBufferWithParameters †
録音用のバッファキューまたは再生用のオーディオキューに、開始時間やその他の設定を指定してバッファを追加する。
OSStatus AudioQueueEnqueueBufferWithParameters (
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
UInt32 inNumPacketDescs,
const AudioStreamPacketDescription *inPacketDescs,
UInt32 inTrimFramesAtStart,
UInt32 inTrimFramesAtEnd,
UInt32 inNumParamValues,
const AudioQueueParameterEvent *inParamValues,
const AudioTimeStamp *inStartTime,
AudioTimeStamp *outActualStartTime
);AudioQueueFlush †
オーディオキューのデコーダの状態をリセットする。
OSStatus AudioQueueFlush (
AudioQueueRef inAQ
);AudioQueueFreeBuffer †
オーディオキューバッファの処理をオーディオキューに尋ねる。
OSStatus AudioQueueFreeBuffer (
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer
);AudioQueueGetCurrentTime †
オーディオキューの現在の時間を取得する。
OSStatus AudioQueueGetCurrentTime (
AudioQueueRef inAQ,
AudioQueueTimelineRef inTimeline,
AudioTimeStamp *outTimeStamp,
Boolean *outTimelineDiscontinuity
);AudioQueueGetParameter †
オーディオキューのパラメータの値を取得する。
OSStatus AudioQueueGetParameter (
AudioQueueRef inAQ,
AudioQueueParameterID inParamID,
AudioQueueParameterValue *outValue
);AudioQueueGetProperty †
オーディオキューのプロパティの値を取得する。
OSStatus AudioQueueGetProperty (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
void *outData,
UInt32 *ioDataSize
);AudioQueueGetPropertySize †
オーディオキューのプロパティの値のサイズを取得する。
OSStatus AudioQueueGetPropertySize (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
UInt32 *outDataSize
);AudioQueueNewInput †
新しい録音用オーディオキューオブジェクトを作成する。
OSStatus AudioQueueNewInput (
const AudioStreamBasicDescription *inFormat,
AudioQueueInputCallback inCallbackProc,
void *inUserData,
CFRunLoopRef inCallbackRunLoop,
CFStringRef inCallbackRunLoopMode,
UInt32 inFlags,
AudioQueueRef *outAQ
);AudioQueueNewOutput †
新しい再生用オーディオキューオブジェクトを作成する。
OSStatus AudioQueueNewOutput (
const AudioStreamBasicDescription *inFormat,
AudioQueueOutputCallback inCallbackProc,
void *inUserData,
CFRunLoopRef inCallbackRunLoop,
CFStringRef inCallbackRunLoopMode,
UInt32 inFlags,
AudioQueueRef *outAQ
);AudioQueueOfflineRender †
再生オーディオキューを使用して、オーディオをデバイスの代わりにバッファへエキスポートする。
OSStatus AudioQueueOfflineRender (
AudioQueueRef inAQ,
const AudioTimeStamp *inTimestamp,
AudioQueueBufferRef ioBuffer,
UInt32 inNumberFrames
);AudioQueuePause †
オーディオの再生と録音を一時停止する。
OSStatus AudioQueuePause (
AudioQueueRef inAQ
);AudioQueuePrime †
再生用に用意してある待機状態のバッファをデコードする。
OSStatus AudioQueuePrime (
AudioQueueRef inAQ,
UInt32 inNumberOfFramesToPrepare,
UInt32 *outNumberOfFramesPrepared
);AudioQueueRemovePropertyListener †
オーディオキューからプロパティリスナーコールバックを削除する。
OSStatus AudioQueueRemovePropertyListener (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
AudioQueuePropertyListenerProc inProc,
void *inUserData
);AudioQueueReset †
オーディオキューをリセットする。
OSStatus AudioQueueReset (
AudioQueueRef inAQ
);AudioQueueSetOfflineRenderFormat †
レンダリングモードと再生オーディオキュー用のオーディオフォーマットをセットする。
OSStatus AudioQueueSetOfflineRenderFormat (
AudioQueueRef inAQ,
const AudioStreamBasicDescription *inFormat,
const AudioChannelLayout *inLayout
);AudioQueueSetParameter †
再生オーディオキューのパラメーターの値をセットする。
OSStatus AudioQueueSetParameter (
AudioQueueRef inAQ,
AudioQueueParameterID inParamID,
AudioQueueParameterValue inValue
);AudioQueueSetProperty †
オーディオキューのプロパティの値をセットする。
OSStatus AudioQueueSetProperty (
AudioQueueRef inAQ,
AudioQueuePropertyID inID,
const void *inData,
UInt32 inDataSize
);AudioQueueStart †
オーディオの再生または録音を開始する。
OSStatus AudioQueueStart (
AudioQueueRef inAQ,
const AudioTimeStamp *inStartTime
);AudioQueueStop †
オーディオの再生または録音を停止する。
OSStatus AudioQueueStop (
AudioQueueRef inAQ,
Boolean inImmediate
);コールバック インデックス †
再生・録音用のオーディオキューバッファの処理 †
AudioQueueInputCallback
AudioQueueOutputCallback
プロパティリスナーの定義 †
AudioQueuePropertyListenerProc
コールバック †
AudioQueueInputCallback †
録音オーディオキューがオーディオキューバッファを満たし終わった時に呼ばれるコールバック関数のポインターを定義する。
typedef void (*AudioQueueInputCallback) (
void *inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
const AudioTimeStamp *inStartTime,
UInt32 inNumberPacketDescriptions,
const AudioStreamPacketDescription *inPacketDescs
);AudioQueueOutputCallback †
オーディオキューバッファが(再)利用可能な時に呼ばれるコールバック関数のポインターを定義する。
typedef void (*AudioQueueOutputCallback) (
void *inUserData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer
);AudioQueuePropertyListenerProc †
オーディオキュープロパティの値の変更が指定された時に呼ばれるコールバック関数のポインターを定義する。
typedef void (*AudioQueuePropertyListenerProc) (
void *inUserData,
AudioQueueRef inAQ,
AudioQueuePropertyID inID
);データタイプ †
AudioQueueBuffer †
オーディオキューバッファを定義する。
typedef struct AudioQueueBuffer {
const UInt32 mAudioDataBytesCapacity;
void *const mAudioData;
UInt32 mAudioDataByteSize;
void *mUserData;
const UInt32 mPacketDescriptionCapacity;
AudioStreamPacketDescription *const mPacketDescriptions;
UInt32 mPacketDescriptionCount;
} AudioQueueBuffer;AudioQueueRef †
typedef struct OpaqueAudioQueue *AudioQueueRef;
オーディオキューを表現する不透明なデータタイプを定義する。
AudioQueueTimelineRef †
オーディオキュータイムラインオブジェクトを表現する不透明なデータタイプを定義する。
typedef struct OpaqueAudioQueueTimeline *AudioQueueTimelineRef;
AudioQueueLevelMeterState †
オーディオキューチャンネルの現在の情報計測レベルを指定する。
typedef struct AudioQueueLevelMeterState {
Float32 mAveragePower;
Float32 mPeakPower;
}; AudioQueueLevelMeterState;AudioQueueParameterEvent †
オーディオキューパラメータと関連する値を指定する。
struct AudioQueueParameterEvent {
AudioQueueParameterID mID;
AudioQueueParameterValue mValue;
}; typedef struct AudioQueueParameterEvent AudioQueueParameterEvent;AudioQueueParameterID †
オーディオキューパラメータを独自に識別するUInt32の値。
typedef UInt32 AudioQueueParameterID;
AudioQueueParameterValue †
オーディオキューパラメータ用のFloat32の値。
typedef Float32 AudioQueueParameterValue;