2012-01-06 14 views
2

にあるとき、これはリンゴのドキュメントであるならば、私はそれを見つけることができていませんでした再生されていない - 誰かが助けることができることを望ん: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を使用することはできませんか?もしそうなら、私はそれについてのドキュメンテーションに何も見つかりませんでした。

答えて

2

最後にこのための技術サポートリクエストを提出しなければなりませんでした。

Appleのバックグラウンド再生は、AmbientSoundカテゴリではサポートされていないため、MediaPlaybackを使用する必要があります。

彼らはこれがドキュメントにあると主張している - 私はもう一度見て、私はそれを見つけることができませんでした。

これで、背景音がMediaPlaybackにミックスされるのは、kAudioSessionProperty_OverrideCategoryMixWithOthersを使用すれば十分ですが、私は現在、他のAmbientSound機能(ミュートスイッチに従い、ロックされていないときは再生しません)を複製する必要があります。 AmbientSoundがバックグラウンドでの再生をサポートしていない理由を私は本当に理解していません。

+0

2012年以降のアップデートはありますか?私はここで同じ問題に取り組んでいます。アンビエントはフォアグラウンドでは効果がありますが、バックグラウンドではサウンドがありません。サイレント・スイッチを考慮していないので、再生は実際の選択肢ではありません。ありがとう! – Guven

+1

私は最近これを試したことはありませんが、行動が変わったら驚くでしょう –

関連する問題