Kann unter iOS nicht mit dem Empfangen von Remote Control-Ereignissen beginnen
In meiner App möchte ich dem Benutzer die Möglichkeit geben, die Audiowiedergabe im Hintergrund zu steuern. Ich stelle backGround-Modi in .plist und in Spielen in bg so ein, wie ich es wollte. Aber ich bekomme keine Antwort, wenn ich die Steuertasten berühre.
Ich habe dieAudioSession
so was
<code>[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; [[AVAudioSession sharedInstance]setActive:YES error:nil]; </code>
Dann in viewContoller, wo mein Player platziert ist ibeginReceivingRemoteControlEvents
so was
<code> if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginReceivingRemoteControlEvents)]){ [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; [self becomeFirstResponder]; NSLog(@"Responds!"); } </code>
Und es drucktResponds!
Das Problem ist aber, dass diese Methode nie aufgerufen wird
<code> - (void)remoteControlReceivedWithEvent:(UIEvent *)event { NSLog(@"Where is my event?"); if(event.type == UIEventTypeRemoteControl) { switch (event.subtype) { case UIEventSubtypeRemoteControlTogglePlayPause: NSLog(@"Pause"); [self playWords:playButton]; break; case UIEventSubtypeRemoteControlNextTrack: NSLog(@"Next"); [self next]; break; case UIEventSubtypeRemoteControlPreviousTrack: NSLog(@"Prev"); [self prev]; break; } } </code>
Ich habe sogar versucht, eine Kategorie zu schreibenUIApplication
es zum Ersthelfer werden zu lassen, aber es hilft nicht
<code>@implementation UIApplication (RemoteEvents) -(BOOL)canBecomeFirstResponder { return YES; } @end </code>
Warum kann das passieren?
LÖSUNG Hier ist, was mein Problem gelöst hatHintergrund auf iOS4 eingeben, um Audio abzuspielen