Can& #39;t beginReceiveRemoteControlEvents в iOS

В своем приложении я хочу, чтобы пользователь мог управлять воспроизведением звука в фоновом режиме. Я установил фоновые режимы в.plist, а в играх в bg, как и хотел. Но я не могу получить никакого ответа от прикосновения к кнопкам управления.

Я установил AudioSessionвот так

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance]setActive:YES error:nil];

Затем в viewContoller, где находится мой плеер, beginReceivingRemoteControlEventsвот так

 if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginReceivingRemoteControlEvents)]){
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
    [self becomeFirstResponder];
    NSLog(@"Responds!");
}

И он печатаетResponds!

Но проблема в том, что этот метод никогда не вызывается

    - (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;

        }
    }

Я даже пытался написать категорию на UIApplication, чтобы он стал первым ответившим, но это не помогает

@implementation UIApplication (RemoteEvents)
-(BOOL)canBecomeFirstResponder
{
    return YES;
}
@end

Почему такое может происходить?

РЕШЕНИЕ Вот что решило мою проблему Вход в фоновый режим на iOS4 для воспроизведения звука

8
задан Community 23 May 2017 в 12:09
поделиться