• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iphoenでロック中でも音楽再生を継続したい)

iphoenでロック中でも音楽再生を継続したい

このQ&Aのポイント
  • iphoenのミュージック再生アプリの開発においてロック中でも再生を継続する方法が知りたい
  • 設定を変更してもiphoenのロック中に音楽再生が停止してしまう問題が発生しています
  • AVAudioSessionを使用してホームボタンを押した状態でも音楽再生を継続する方法を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

この件は、私も以前悩んだことがあります。 結局、リモートコントロールイベントを受け取るようにして それを受けとるビューコントローラーをファーストレスポンダ にしたら、バックグラウンドで再生が継続できるようになりました。 ただ、私はAVAudioPlayerを使ってやってましたので、 もしかするとAUGraphだと事情が変わるかもしれませんが、 試してみるとよいと思います。 以下のURLがそのあたりも含めて書かれてあって参考になると思います。 http://blog.valeur3.com/?p=663 それと、前回の質問(再生位置制御の件)は疑問を残したまま閉じたような 感じですが、解決したんでしょうか? kAudioUnitSubType_AudioFilePlayerを使っているんだったら、 コールバックで処理するのではなく、そのAudio File Player Unit の設定変更で再生位置を制御する必要があります。 再生位置の取得はkAudioUnitProperty_CurrentPlayTimeプロパティを 取得することで得られますが、そのプロパティに直接設定して 再生位置を変更することはできないようで、結局再生リージョンを 設定し直す形で再生位置を変更する必要があるようです。 以下のサンプルのgetTrackPosition関数,setTrackPosition関数が 参考になると思います。 https://github.com/aranm/AUFilePlayerDemo/blob/master/iOSfilePlayer/PlayFile.cpp

cocoro99
質問者

お礼

ありがとうございます。 AUGraphのためか、うまく行きませんでしたが。 頂いた情報をもとに色々調査したところ ロック時にIOバッファサイズが変更される事が原因だと考え AudioSessionのsetPreferredIOBufferDurationを利用する事により解決しました。 >それと、前回の質問(再生位置制御の件)は疑問を残したまま閉じたような感じですが、解決したんでしょうか? その後、Extended Audio File Services にて実装しましたが、レイテンシがネックとなり再度調査していたところでした。 今回ご紹介いただいた情報は、まさに探していたものでした。 早速、実装しました。 大変参考になる情報をありがとうございました。

関連するQ&A