Нажмите кнопку воспроизведения на гарнитуре iPhone

Я хочу обнаружить нажатие кнопки гарнитуры на iPhone, см. Обнаружение нажатия кнопки гарнитуры на iPhone SDK . Я следую за http://developer.apple.com/library/IOS/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/RemoteControl/RemoteControl.html, затем я написал код, как показано ниже, но он не работает!

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent
{
    if (receivedEvent.type == UIEventTypeRemoteControl) {
        NSLog(@"Remote Control Event");
        switch (receivedEvent.subtype) {
            case UIEventSubtypeRemoteControlTogglePlayPause:
                NSLog(@"UIEventSubtypeRemoteControlTogglePlayPause");
                break;
            default:
                break;
        }
    }
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
    [super viewWillDisappear:animated];
}

Моя проблема в том, что я не могу поймать событие удаленного управления. При нажатии кнопки воспроизведения или паузы на гарнитуре консоль ничего не печатает! Кто может мне помочь? Спасибо.


person Smeegol    schedule 21.03.2012    source источник


Ответы (1)


Обновлен ли ваш Info.plist, чтобы указать, что вы поддерживаете звук?

С http://www.iphonedevsdk.com/forum/iphone-sdk-development/44433-there-way-respond-clicks-headphone-buttons.html

Добавьте новую строку и выберите «Необходимые фоновые режимы». В «Элементе 0», который появляется под ним или рядом с ним, выберите «Приложение воспроизводит звук».

person ThomasW    schedule 21.03.2012
comment
@SmeegolXie вам нужно предоставить больше информации о том, что вы пробовали и не пробовали. - person ThomasW; 21.03.2012
comment
это приложение предназначено не для воспроизведения звука, а просто для того, чтобы поймать событие нажатия кнопки гарнитуры. Мой коллега сказал мне, что событие воспроизведения/паузы не может быть обнаружено без воспроизведения звука. Это правильно? Разве я не могу просто поймать событие воспроизведения / паузы через гарнитуру без воспроизведения звука? Спасибо. - person Smeegol; 21.03.2012