たけぞうBLOG

iOS,XCode,Cameraなど

iOSアプリ開発

【iOS】Audio Queue

投稿日:3月 31, 2011 更新日:

Audio Queue とは?
  • 音声の記録、再生を行うために使用するソフトウェアオブジェクトのこと
  • AudioQueueRefで表現され、AudioQueue.hに宣言されている
  • 全コーデックを取り扱うことができる
録音用のAudio Queue
  • 出力側でコールバック関数を利用する
  • バッファがキューから受け取った音声データをコールバック関数で記録する
再生用のAudio Queue
  • 入力側でコールバック関数を利用する
  • 音声データの取得、キューへのデータ引き渡しを行う
Audio Queue Buffer
  • AudioQueueBufferRef型のデータ構造
  • const UInt32 mAudioDataBytesCapacity
    void *const mAudioData バッファ(音声データの一時的な塊を格納するメモリ領域)
    UInt32 mAudioDataByteSize
    void *mUserData
録音用Audio Queueコールバックのプロトタイプ
void *inUserData Audio Queueとそのバッファ用のステータス情報などユーザ独自の構造体
AudioQueueRef inAQ コールバックを呼び出したAudio Queue
AudioQueueBufferRef inBuffer Audio Queueによって新しく埋められたAudio Queue Buffer
const AudioTimeStamp *inStartTime バッファの最初のサンプル時間
UInt32 inNumberPacketDescriptions inPacketDescs引数で記述されるパケットの番号。VBRでのみ使われる
const AudioStreamPacketDescription *inPacketDescs バッファ中のサンプルと合致するパケット記述子が設定される。VBRでのみ使われる
再生用Audio Queueコールバックのプロトタイプ
void *inUserData Audio Queueとのそのバッファ要のステータス情報などユーザ独自の構造体
AudioQueueRef inAQ コールバックを呼び出したAudio Queue
AudioQueueBufferRef inBuffer Audio Queueによって生成されたAudio Queue Buffer
Audio Queueのライフサイクル
開始(AudioQueueStart) 録音/再生の初期化
準備(AudioQueuePrime) 再生をすぐに行うために、AudioQueueStartを呼ぶ前に呼ばれる
停止(AudioQueueStop) Audio Queueのリセットと、録音/再生を停止する際に呼ばれる。(同期停止と非同期停止がある)
一時停止(AudioQueuePause) 録音/再生を一時停止する際に呼ばれる
更新(AudioQueueFlush) 最後のAudioQueueBufferのエンキューが終わったあとで、全てのバッファ済みデータと処理中の音声データが確実に録音/再生されるように呼び出される
リセット(AudioQueueReset) 前もって決められていたスケジュールから全てのバッファを削除し、ただちにAudio Queueを停止するとともに全デコーダとDSPの状態をリセットするために呼ばれる

-iOSアプリ開発

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[Swift]Autolayout+UIScrollView上に動的なUITextViewを表示する

Autolayout+UIScrollView上に動的なUITextViewを表示しようと思ったのですが、なかなか一筋縄ではいかなかったので備忘録 やりたいこと StoryboardでAutolayo …

iPhoneアプリ開発でのキーチェーンアクセス設定

iPhoneアプリ開発でハマりやすいキーチェーンアクセスのチェックポイント

[iOS]デザインパターン集

RayWenderlichで\”iOS Design Patterns\”という記事に、iOSアプリ開発で頻出のデザインパターンをわかりやすく説明しています。

iOS7のアプリアイコン作成手順まとめ

iOS7に対応したアプリのアイコン作成手順をまとめました。

Xcode6のView Debugging使い方

View Debuggingとは? Xcode6の新機能で、iOSアプリ開発時のview階層を視覚的に確認できる機能のようです。 これまでview階層を視覚的に表示する手段がなかったので、このようなデ …

プロフィール


1972年神奈川県生まれ。ソフトウェアエンジニアとして生きています。最近はクライアントアプリからサーバーサイドまで幅広くやってます。