Как определить, что один Airpod снят с помощью AVFoundation? - PullRequest
0 голосов
/ 28 января 2019

Как следует из названия, мне нужно обнаружить пользователей, снимающих свои аэродромы при воспроизведении музыки.По некоторым причинам я должен использовать AVAudioplayer вместо MPMusicPlayer для воспроизведения музыки, а AVAudioSession может получать событие паузы только тогда, когда все аэродромы сняты.

Есть ли какой-нибудь метод с AVFoundation, который может обнаружить, что один Airpod снят?Или Apple не реализует это в AVFoundation?

1 Ответ

0 голосов
/ 24 июня 2019

Наконец, я решил эту проблему, используя MPRemoteCommandCenter для получения события паузы.Событие паузы может быть вызвано одним или несколькими взлетевшими Airpods.После получения события я могу приостановить воспроизведение музыки, воспроизводимой AVAudioplayer, в блоке обработчика.

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[MPRemoteCommandCenter sharedCommandCenter].pauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {

    // Paused by one or more Airpods taken off !
    return MPRemoteCommandHandlerStatusSuccess;
}];
...