In meiner App möchte ich Benutzer Audio-Wiedergabe im Hintergrund steuern lassen. Ich stelle backGround-Modi in .plist ein und spiele in bg genau so, wie ich es wollte. Aber ich bekomme keine Antwort, wenn ich die Steuertasten berühre.Kann nicht beginnenReceivingRemoteControlEvents in iOS
stelle ich die AudioSession
wie diese
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance]setActive:YES error:nil];
in viewContoller Dann, wo mein Player Ich mag dieses
if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginReceivingRemoteControlEvents)]){
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
[self becomeFirstResponder];
NSLog(@"Responds!");
}
beginReceivingRemoteControlEvents
gesetzt und er druckt Responds!
Aber das Problem ist, dass Diese Methode wird nie
aufgerufen- (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;
}
}
Ich habe sogar versucht, eine Kategorie UIApplication
zu schreiben, um es der erste Responder werden zu lassen, aber es ist nicht
@implementation UIApplication (RemoteEvents)
-(BOOL)canBecomeFirstResponder
{
return YES;
}
@end
Warum kann Geschieht dies helfen?
SOLUTION Hier ist, was Entering background on iOS4 to play audio mein Problem gelöst
Vielen Dank, aber soweit ich sehen kann, ist es genau das gleiche –
Eine andere Sache ist, dass Sie es nicht auf Simulator testen können, verwenden Sie Gerät, wenn Sie Simulator verwenden, um Ereignisse und Backgroung Musik zu testen. –
Ich teste auf Gerät ein) –