にあるとき、これはリンゴのドキュメントであるならば、私はそれを見つけることができていませんでした再生されていない - 誰かが助けることができることを望ん:AVAudioPlayerは、AmbientSoundセッションを使用して、アプリがバックグラウンド
マイアプリは時折短いオーディオを再生クリップ - iPodアプリケーションのような背景で他のアプリケーションからオーディオを再生してオーディオをミックスしたいのですが、バックグラウンドでアプリケーションを実行しているときにこれらのオーディオクリップを再生したいと考えています。
私は私のアプリは、オーディオセッションを設定(また、そこに設定されているように、アプリは、あまりにも、位置情報サービスを使用している)のInfo.plistで必要なバックグラウンドモードの設定で「アプリケーションがオーディオを再生する」を設定している
私のviewWillAppearで
AudioSessionInitialize (NULL,NULL,NULL,NULL);
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,sizeof (sessionCategory),&sessionCategory);
AudioSessionSetActive(true);
:applicationDidFinishLaunching上でアクティブなビューの方法私が持っている:
[super viewWillAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
と、対応するイベントハンドラとをviewWillDisappearでendReceivingRemoteControlEventsコード:最後に
iOS 4: Remote controls for background audioで説明したように、私は、特定のイベントにサウンドを再生し、通常の方法で設定AVAudioPlayerを、
bool successful = [avAudioPlayer play];
if(!successful)
NSLog(@"did not play");
アプリがフォアグラウンドにあるアプリが正常に動作していオーディオを再生しますが、アプリがバックグラウンドに入り、アプリケーションがサウンドを再生しようとすると、[avAudioPlayer play]の戻り値はNOで、サウンドは再生されません。フォアグラウンドに戻ったときにオーディオが再び機能し始めます。
私がセッションをセットアップするときに私が代わりに
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
を使用している場合は、その後のオーディオは完全に、前景と背景で再生されます。しかし、MediaPlaybackは、私が時折オーディオクリップを再生するだけなので、このアプリのための適切なモードではありません。AmbientSoundは本当に私が使用すべきモードです。
私には何が欠けていますか?バックグラウンドでオーディオを再生するためにkAudioSessionCategory_AmbientSoundを使用することはできませんか?もしそうなら、私はそれについてのドキュメンテーションに何も見つかりませんでした。
2012年以降のアップデートはありますか?私はここで同じ問題に取り組んでいます。アンビエントはフォアグラウンドでは効果がありますが、バックグラウンドではサウンドがありません。サイレント・スイッチを考慮していないので、再生は実際の選択肢ではありません。ありがとう! – Guven
私は最近これを試したことはありませんが、行動が変わったら驚くでしょう –