2012-01-01 17 views
1

私はApp plays audioApp provides Voice over IP servicesというオプションを.plistで設定したアプリケーションを持っています。アプリケーションがバックグラウンドのときにAVAudioPlayerを起動する

アプリケーションはソケットイベント(バックグラウンドでさえ)を受信して​​おり、イベントに関してはサウンドを再生します。アプリケーションがフォアグラウンドにあるときは、すべて正常です。アプリがバックグラウンドになると、アプリが起動され、プレーヤーの再生方法が呼び出されますが、音は鳴りません。

私はインターネットから多くのサンプルコードを試しましたが、何も機能していません。私はフォアグラウンドでサウンドを再生し、バックグラウンドで私のアプリを移動しようとしていると働いている。

アプリがバックグラウンドのときにサウンドを再生するのに問題がありますか?

ここに私のアプリがバックグラウンドでトリガーされるイベントを処理する私のコードです:

NSError *error; 
NSURL *audioFileLocationURL = [[NSBundle mainBundle] URLForResource:@"HeadspinLong" withExtension:@"caf"]; 
if (audioPlayer != nil) return; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileLocationURL error:&error]; 
audioPlayer.delegate=self; 
if (error) { 
    NSLog(@"%@", [error localizedDescription]); 
} 
audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[audioSession setActive: YES error: &error]; 
audioSession.delegate=self; 
if (error) { 
    NSLog(@""); 
} 
+0

可能重複して音楽を演奏の再生を継続することしかできない...アプリがバックグラウンドで動作しているとき、音楽の再生を開始することはできないようです[AVAudioPlayerはバックグラウンドで再生を開始しません](http://stackoverflow.com/questions/16564298/avaudioplayer-doesnt-start-playing-in-background) – matt

答えて

0

は明白な疑問のように思えるが、あなたが実際にあなたの実際のアプリケーションでaudioPlayerオブジェクト上playメソッド呼び出していますか?おそらくバックグラウンドイベントハンドラの終わりに? [audioPlayer play];

+0

私が提供しているコードは "Initメソッド"です1回だけ)。 audioPlayerのplayメソッドは、「ネットワークイベント」が来たときに呼び出されます。 – fvisticot

0

すなわち

私の理解のために、既存の背景

関連する問題