2011-01-12 9 views
6

MPMoviePlayerControllerに問題があります。アプリがバックグラウンドに移行し、すべてがOK作業しているときに再生するように設計されてバックグラウンドのMPMoviePlayerController/AVAudioSessionは、着信後に再生を再開しません。

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 

NSError *setCategoryError = nil; 
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError]; 
if (setCategoryError) { 
} 

NSError *activationError = nil; 
[audioSession setActive:YES error:&activationError]; 
if (activationError) { 
} 
self.player = 
[[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:url]]; 
player.view.hidden = YES; 
player.shouldAutoplay = YES; 
[player release]; 
[btnContainer addSubview: player.view]; 
player.useApplicationAudioSession = NO; 

:私はM3U8オーディオソースを再生するには、インスタンスを使用します。

問題は、バックグラウンドで着信があったときです。その場合、ストリームは一時停止しますが、コールが終了した後は戻ってこない。実際には、コンソールは

2011-01-12 12:02:27.729 RAC1[1571:307] MP _playbackInterruptionDidEndNotification :: NSConcreteNotification 0x155890 {name = AVController_PlaybackInterruptionDidEndNotification; object = <AVController: 0x180d50>; userInfo = { 
    "AVController_InterruptionStatusNotificationParameter" = "call.declined"; 
    "AVController_InterruptorNameNotificationParameter" = Phone; 
}}, _state = 6 
2011-01-12 12:02:27.730 RAC1[1571:307] MP _playbackInterruptionDidEndNotification :: resuming playback! 

を言うと、アプリがMPMoviePlaybackStatePlayingとしてストリームを示していますが、音が停止しているようです。私はやってみた

[[AVAudioSession sharedInstance] setActive: YES error: &err] 

しかし、それは失敗するようです。

誰か手掛かりがありますか?

ありがとうございました!

答えて

3

私は私のViewControllerのviewDidAppear

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 

に必要なようです

+0

再生ボタンを押すとリモコンイベントの受信を開始し、停止ボタンを押すとコントロールイベントを受信します。また、アプリケーションがバックグラウンドでオーディオを再生しているときに再生を再開する前に、1秒間待つ必要がありました。 dispatch_after(dispatch_time(DISPATCH_TIME_NOW、1 * NSEC_PER_SEC)、dispatch_get_main_queue()、^ { //再生再開 })を使用して、 –

1

はあなたがオーディオ割り込みを処理するためにthis linkを見ていました....そうです。 AVAudioSessionDelegateをセットアップし、中断を処理する必要があります。

関連する問題