Ich habe ein Problem mit MPMoviePlayerController. Ich benutze eine Instanz eine m3u8 Audioquelle zu spielen:MPMoviePlayerController/AVAudioSession im Hintergrund startet die Wiedergabe nach einem eingehenden Anruf nicht neu
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;
es konzipiert ist zu spielen, wenn die App in den Hintergrund geht, und alles funktioniert OK.
Das Problem ist, wenn es im Hintergrund ist und ich einen eingehenden Anruf bekomme. In diesem Fall pausiert der Stream, kehrt jedoch nicht zurück, nachdem der Anruf beendet wurde. In der Tat, sagt die Konsole
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!
und der App zeigt den Stream als MPMoviePlaybackStatePlaying
, aber der Ton scheint zu stoppen. Ich habe versucht,
[[AVAudioSession sharedInstance] setActive: YES error: &err]
zu tun, aber es scheint zu scheitern.
Hat jemand eine Ahnung?
danke!
Ich empfange Fernbedienungsereignisse, wenn die Wiedergabetaste gedrückt wird, und erhalte die Empfangsereignisse, wenn die Stopptaste gedrückt wird. Außerdem musste ich 1 Sekunde warten, bevor ich weiterspielen konnte, wenn die App Audio im Hintergrund spielt. mit: dispatch_after (dispatch_time (DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(),^{ // Wiedergabe fortsetzen }) –