オーディオアプリをバックグラウンドで再生しようとしています。これまでのところ私はちょうど私の音源を開始する前に、Info.plistファイルの「必要なバックグラウンドモード」とも次のコードに「アプリがオーディオを再生する」を追加しました:画面がロックされていると、iOSのバックグラウンドオーディオが停止する
AudioSessionInitialize(NULL, kCFRunLoopDefaultMode, &interruptionListener, sgD);
AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, &routeChangeListener, sgD);
// select "Playback" audio session category
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
OSStatus propertySetError = 0;
UInt32 category = kAudioSessionCategory_MediaPlayback;
propertySetError = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (category), &category);
AudioSessionSetActive(true);
私は別のアプリに切り替えたときしかし、これが唯一の作品またはiPodのメイン画面に表示されます。画面をオフにすると、オーディオ出力もオフになります。これは間違いなく私が望むものではありません。しかし、stackoverflowに関するすべてのチュートリアル/ドキュメンテーション/答えは、バックグラウンドオーディオが機能するようになると、画面がオフになっている間はオーディオを実行し続けることを自動的に示しているようです。誰か私にヒントはありますか?ありがとうございます! フリッツ
私が言うのを忘れて何を: AudioQueuesを使用してオーディオ出力ストリームを生成しています。オーディオキューのコールバックは、画面がオフの間に呼び出されますが、ヘッドホンで音声は聞こえません。これは、オーディオルートの問題を示している可能性があります。しかし、私のルート変更コールバックは決して呼び出されません。 –
問題が解決しました...画面がオフになっている間に実行する必要がある場合は、オーディオバッファのサイズを十分に大きくする必要があります。私はこれがすべてのアプリに当てはまるかどうかはわかりませんが、私のアプリは少なくとも2048サンプルのバッファサイズが必要でした。 1024サンプルでは、動作を停止しました。 –
これを動作させることができれば、ソリューションを回答として追加できますか?ありがとう。 –