использование BeginReceivingRemoteControlEvents в Monotouch - PullRequest
2 голосов
/ 14 сентября 2010

Я заставил свое приложение воспроизводить музыку в фоновом режиме, а также успешно сделал его медиаплеером, вызвав BeginReceivingRemoteControlEvents. однако метод RemoteControlReceived никогда не вызывается. та же логика в Objective C работает нормально. Любые образцы или рекомендации приветствуются.

Ответы [ 2 ]

0 голосов
/ 03 сентября 2015

Возможно, вы захотите попробовать использовать более поздний механизм для прослушивания событий дистанционного управления. Например, если вы хотите прослушать кнопку гарнитуры:

    MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];

    [commandCenter.togglePlayPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
        NSLog(@"toggle button pressed");
        return MPRemoteCommandHandlerStatusSuccess;
    }];

или, если вы предпочитаете использовать метод вместо блока:

    [commandCenter.togglePlayPauseCommand addTarget:self action:@selector(toggleButtonAction)];

Для остановки:

    [commandCenter.togglePlayPauseCommand removeTarget:self];

или

    [commandCenter.togglePlayPauseCommand removeTarget:self action:@selector(toggleButtonAction)];

Вам необходимо добавить это в область включений вашего файла:

@import MediaPlayer;

Это работает в фоновом режиме, ТОЛЬКО если вы используете аудио приложение, играющее в фоновом режиме (т.е. вы должны установить этот фоновый режим в возможностях вашего приложения).

0 голосов
/ 07 марта 2012

Вы должны убедиться, что оно размещено в представлении «Первый респондент», а если нет, то событие должно передаваться по цепочке респондентов до тех пор, пока оно не достигнет ваших удаленных событий. Попробуйте представить события дистанционного управления так же, как нажатия клавиш на клавиатуре. Например, если приложение сфокусировано на кнопке, и вы нажимаете некоторые клавиши клавиатуры, ничего не произойдет, поскольку кнопка не прослушивает нажатия клавиш. Аналогичная ситуация происходит в вашем коде. Попробуйте создать базовый проект с одним просмотром с BeginReceivingRemoteControlEvents и переопределением метода для получения события (не могу вспомнить, что это такое, RemoteEventReceived () или что-то подобное.) Это должно срабатывать при нажатии удаленной кнопки.

(извините, я не могу дать пример кода, не перед Mac в данный момент)

...