したがって、AlwaysAuthorizationを要求したCoreLocationのため、私のアプリはバックグラウンドで実行されています。これにより、アプリが一時停止状態になることはありません。バックグラウンド状態のままで、ロケーションイベントを受信しています。いくつかのロケーションイベントの後、私はAVAudioSessionをアクティブにしていくつかのサウンドを再生したいと思います。私が前景で他のアプリを使用していて、このアプリがオーディオトラックを再生しているとき、セッションを適切に(このバックグラウンドアプリで)アクティブにする方法。私はYoutubeアプリでいくつかのビデオを見ていると私のバックグラウンドアプリは今すぐオーディオを再生する必要があると仮定します。この場合、オーディオセッションをアクティブにする際に問題があります。MixWithOthersを使用せずにAVAudioSessionをバックグラウンド状態でアクティブにすることはできますか?
この場合、リング/サイレントスイッチがオンになっていても再生する必要があるため、AudioToolbox
再生エンジンは使用できません。
私はAVAudioSessionCategoryPlayback
カテゴリを使用する必要があることを知っています。他のアプリを同時に再生しないようにするため、MixWithOthers
またはDuckOthers
カテゴリのオプションを使用していません。
UIBackgroundModes
は、バックグラウンドでオーディオ再生を有効にしました。
アプリがバックグラウンドで、他のアプリが現在どのミキシングオプションも有効にしていない状態でオーディオを再生しているときに、そのセッションをアクティブにする方法。現在のフォアグラウンドアプリでオーディオセッションを中断する方法。私のバックグラウンドアプリで再生時間を有効にすることができます。再生が終わったら、バックグラウンドでオーディオセッションを無効にし、他のアプリに再生を再開できることを知らせることです。
アプリが起動した直後にセッションをアクティブにするのはベストプラクティスではありません。それはまた動作しません。私は試した。このようにアプリを起動して音楽アプリに切り替えると、音楽が再生されます。私のアプリはオーディオセッションを中断します(私はアプリケーションで中断を正しく処理しています)。この状態では(フォアグラウンドのミュージックアプリとバックグラウンドでの私のアプリケーションで)、私のアプリが位置トリガを取得してスタートするのを待っていますいくつかのオーディオを再生します。バックグラウンドのアプリは、mixableカテゴリではなく、単にオーディオセッションを開始することはできません。 –