スクリーンロック時,バックグラウンド時にAudioUnitで音楽を再生するために | 初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログです.
入門レベルですので開発初心者にも,できるだけ分かるように丁寧に説明していきます(多分).

今までのエントリとは違って,コアなものですが...

スクリーンロック時,バックグラウンド時にAudioUnitで音を鳴らすには,いくつかの設定が必要です.

・AudioSessionの設定
・info.plistの設定
・AudioUnitのPropertyの設定

以上3つ(多分)になります.

AudioSessionはカテゴリーを
kAudioSessionCategory_MediaPlayBack(←これ検索ワードでggrks)
info.plistに
App plays audio(←これ検索ワードでggrks)
AudioUnitPropertyを
UInt32 maximumFramesPerSlice = 4096;


AudioUnitSetProperty (generator,
                      kAudioUnitProperty_MaximumFramesPerSlice,
                      kAudioUnitScope_Global,
                      0,
                      &maximumFramesPerSlice,
                      sizeof (maximumFramesPerSlice));


(↑これ検索ワードでggrks笑)

に設定しましょう.特に3つ目に注意.
スクリーンロック中は,iPhoneの消費電力を抑えるために,
一度にコールバックするサンプル数を減らさなくてはいけないみたいです.
(リファレンスに書いてます)

とりあえず,上のコードを参考にしてください.

HOMEに戻る