2010-09-13 4 views
2

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

+0

Привет, Али, вы нашли ответ на свой вопрос? –

+0

Nope :(Я все еще смотрю ... –

ответ

0

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

(жаль, что я не могу дать пример код, а не перед макинтошем в минуте)

0

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

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; 

Это работает в фоновом режиме, только если вы аудио приложения в фоновом режиме (т.е. вы должны установить этот фоновый режим в своих возможностях приложения).

Смежные вопросы