Ok, damit meine App Videos wiedergibt, möchte ich, dass der Ton im Hintergrund weiterspielt. Aber wenn ich den Home-Button drücke, stoppt die Wiedergabe. Ich teste auf iPhone 4s mit iOS 5.0.1AVPlayer: Der Hintergrundton stoppt, wenn die Home-Taste gedrückt wird, spielt aber mit gesperrtem Bildschirm
Was funktioniert?
- Wenn das Video abgespielt wird und ich den Bildschirm sperren, es,
- I die Wiedergabe von den Sperrbildschirm steuert Kann Kontrolle hält spielen: Vor, Zurück, Play, Pause.
- Wenn ich drücke „Haus“, dann gehen Sie zu dem „Fernbedienungen“ aus der Multitask-Bar, es funktioniert.
Was ist los?
- Ich möchte die App weiterzuspielen, wenn ich „Home“ -Taste drücken, denn wenn ich es tue, Audio stoppt.
Was habe ich getan:
- Added "Audio" auf "Erforderliche Hintergrund-Modus" in meinem app.plist
addierten die folgenden Code Anwendung AppDelegate: didFinishLaunchingWithOptions:
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
Meiner Ansicht Controller habe ich die Methoden implementiert Fernbedienungen zu erhalten:
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
//End recieving events
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
[self play:nil];
break;
case UIEventSubtypeRemoteControlPreviousTrack:
[self actionPlaybackPreviousItem];
break;
case UIEventSubtypeRemoteControlNextTrack:
[self actionPlaybackNextItem];
break;
default:
break;
}
}
}
Wie alles kommen funktioniert, aber das?
Sie auch in Ihrem Player mit dem 'UIApplicationDidEnterBackgroundNotification' registrieren kann, wenn der Film abgespielt wird, und entfernen Sie das beobachten, wenn Sie den Film stoppen. Sie müssen immer noch einen Timer verwenden, um das Video beim Start der Benachrichtigung fortzusetzen. – MacTeo
Otto Boy ist bereits Kommentar [this link] (https://developer.apple.com/library/content/qa/qa1668/_index.html), aber Timer ist nicht gut für diesen Fall. Wenn wir den Timer verwenden, gibt es einen kurzen Stopp während 0,1 Sekunden. Sie entfernen AVPlayer einfach von AVPlayerLayer. –