Слушатель кнопки паузы/воспроизведения

-4

Поэтому я занимался многими исследованиями в этом вопросе, и я не могу заставить этот код обнаруживать, когда нажата кнопка воспроизведения/паузы на гарнитуре. В настоящее время мой код прослушивает нажатые кнопки громкости, на которые выводится действие для моего приложения.

Проблема, с которой я столкнулся, заключается в том, что в мое приложение нет mp3 или мультимедиа, поэтому мне просто нужно приложение, чтобы обнаружить, когда нажата кнопка физического воспроизведения/паузы.

Я просмотрел http://www.sagorin.org/ios-playing-audio-in-background-audio/, к которому я не увенчался успехом из-за того, что в приложении не обнаружено мультимедиа. Я также попытался сделать первую функцию ответчика без везения.

любые идеи, или если у кого-то была аналогичная проблема, это было бы весьма признательно. благодаря

спросил(а) 2015-01-11T23:04:00+03:00 5 лет, 9 месяцев назад
0
57

Посмотрите на сегмент удаленного управления документацией. Для получения уведомления о нажатии кнопки на гарнитуре необходимо выполнить три критерия:

    Будьте первым ответчиком. Контроллер представления или просмотра, представляющий мультимедийный контент, должен быть первым ответчиком. Включите доставку событий дистанционного управления. Ваше приложение должно явно запросить начало приема событий дистанционного управления. Начните играть аудио. Ваше приложение должно быть "Now Playing". Повторно, даже если ваше приложение является первым ответчиком и вы включили доставку событий, ваше приложение не получает события дистанционного управления, пока оно не начнет воспроизводить аудио.

После того, как вы выполнили эти требования, вы можете начать кодирование. Из документации:

Листинг 5-1. Подготовка к приему событий дистанционного управления

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

// Turn on remote control event delivery
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

// Set itself as the first responder
[self becomeFirstResponder];
}

Когда контроллер вида или представления больше не управляет аудио или видео, он должен отключить доставку событий дистанционного управления. Он также должен оставить статус первого ответчика в методе viewWillDisappear:, как показано в листинге 5-2.

Листинг 5-2. Завершение приема событий дистанционного управления

- (void)viewWillDisappear:(BOOL)animated {

// Turn off remote control event delivery
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];

// Resign as first responder
[self resignFirstResponder];

[super viewWillDisappear:animated];
}

Управление событиями дистанционного управления

Чтобы обрабатывать события удаленного управления, первый ответчик должен реализовать метод remoteControlReceivedWithEvent:, объявленный UIResponder. Реализация метода должна оценивать подтип каждого объекта UIEvent, переданного в, а затем, основываясь на подтипе, отправлять соответствующее сообщение объекту, представляющему аудио- или видеоконтент. Листинг 5-3 отправляет воспроизведение, приостановку и остановку сообщений на аудиообъект. Возможны другие подтипы UIEvent удаленного управления, см. Описание UIEvent Class Reference.

Листинг 5-3. Обработка событий дистанционного управления

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlTogglePlayPause:
[self playOrStop: nil];
break;

case UIEventSubtypeRemoteControlPreviousTrack:
[self previousTrack: nil];
break;

case UIEventSubtypeRemoteControlNextTrack:
[self nextTrack: nil];
break;

default:
break;
}
}
}

ответил(а) 2015-01-11T23:13:00+03:00 5 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема