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

События дистанционного управления являются способом для пользователей управлять мультимедиа Вашего приложения. События дистанционного управления происходят из внешних аксессуаров или из управления передачей, выведенного на экран системой, и поставлены Вашему приложению через классы платформы Медиапроигрывателя. Приложения, играющие звуковое содержимое или видеоконтент, используют эти события, чтобы запустить и остановить воспроизведение, дорожки изменения, и даже оценить элемент. Все мультимедийные приложения должны поддерживать эти события.

В дополнение к поддержке событий дистанционного управления приложения могут использовать платформу Медиапроигрывателя для обеспечения информации о воспроизведении для дорожек. Система выводит на экран информацию о воспроизведении в надлежащих местах, таких как экран блокировки и в Центре управления.

Для получения дополнительной информации о классах платформы Медиапроигрывателя, посмотрите Ссылку Платформы Медиапроигрывателя.

Подготовка приложения для событий дистанционного управления

Для получения событий дистанционного управления сделайте следующее:

Если Ваше приложение также предоставляет Теперь информацию Игры, содержащую информацию о текущей дорожке, используйте MPNowPlayingInfoCenter возразите для обновления той информации в подходящее время. Для получения дополнительной информации о том, как предоставить теперь информацию игры, посмотрите Обеспечение, Теперь Играя информацию.

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

Для обработки определенного события дистанционного управления зарегистрируйте обработчик действия в надлежащем MPRemoteCommand объект. Платформа Медиапроигрывателя определяет стандартный набор MPRemoteCommand объекты для обработки связанных с носителями событий. Когда интерфейс аксессуара или iOS генерирует событие дистанционного управления, система уведомляет соответствие MPRemoteCommand объект. Тот объект отвечает путем выполнения любых присоединенных обработчиков.

Вы получаете удаленные объекты команды от совместно используемого MPRemoteCommandCenter объект. Свойства удаленного центра управления содержат объекты для управления воспроизведением, переключая дорожки, и для оценки дорожки. Выберите объект, который Вы хотите поддерживать и присоединить обработчик с помощью или блока или метода действия. Как правило, Вы регистрируете единственный обработчик для каждого типа команды, но можно зарегистрировать многократные обработчики по мере необходимости. Перечисление 5-1 показывает, как зарегистрировать блок, который будет выполняться, когда пользователь хочет играть трек. В примере блок играет в настоящее время выбранную дорожку с помощью пользовательского объекта проигрывателя. В Вашем коде выполните любые действия, которых Вы требуете, чтобы играть трек.

Перечисление 5-1  , Регистрирующее обработчик событий дистанционного управления

MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
[commandCenter.playCommand addTargetUsingBlock:^(MPRemoteCommandEvent *event) {
    // Begin playing the current track.
    [[MyPlayer sharedPlayer] play];
}

Если Вы явно не хотите поддерживать данную команду, выберите объект команды и установите enabled свойство к NO. Отключение удаленной команды позволяет системе знать, что это не должно отображать, любой связал UI для той команды, когда Ваше приложение является Теперь приложением Игры.

Некоторые объекты команды позволяют Вам указать другую информацию, связанную с командой. Например, команды обратной связи позволяют Вам указать локализованную строку, описывающую значение обратной связи. Обязательно смотрите на справочную документацию для получения информации об определенной команде, которую Вы поддерживаете.

Для получения дополнительной информации о добавлении и удалении обработчиков для событий дистанционного управления, посмотрите Ссылку класса MPRemoteCommand.

Обеспечение теперь игры информации

При игре звукового содержимого или видеоконтента, используйте MPNowPlayingInfoCenter объект предоставить дескриптивную информацию об играемом содержании. MPNowPlayingInfoCenter объект содержит a nowPlayingInfo словарь, содержание которого описывает играемый элемент. Система выводит на экран информацию из того словаря в надлежащих местах, такой как на экране блокировки устройства на iOS.

Перечисление 5-2 показывает пример того, как использовать информацию в объекте MPMediaItem сконфигурировать теперь информацию об игре. Пример перечисляет по фиксированному набору свойств и использует получающиеся значения для создавания нового словаря, тогда присваивающегося MPNowPlayingInfoCenter объект.

Перечисление 5-2  , Собирающее Теперь информацию Игры для элемента носителей

- (void)configureNowPlayingInfo:(MPMediaItem*)item
{
    MPNowPlayingInfoCenter* info = [MPNowPlayingInfoCenter defaultCenter];
    NSMutableDictionary* newInfo = [NSMutableDictionary dictionary];
    NSSet* itemProperties = [NSSet setWithObjects:MPMediaItemPropertyTitle,
          MPMediaItemPropertyArtist,
          MPMediaItemPropertyPlaybackDuration,
          MPNowPlayingInfoPropertyElapsedPlaybackTime,
          nil];
 
    [item enumerateValuesForProperties:itemProperties
          usingBlock:^(NSString *property, id value, BOOL *stop) {
        [newInfo setObject:value forKey:property];
    }];
 
    info.nowPlayingInfo = newInfo;
}

Для получения дополнительной информации о типах информации можно обеспечить, видеть Ссылку класса MPNowPlayingInfoCenter.

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

Тест, что Ваше приложение должным образом получает и обрабатывает события дистанционного управления с Центром управления, к которому Вы получаете доступ путем сильного удара от базового края экрана. Эти средства управления отправляют события дистанционного управления в приложение, которое в настоящее время является или последний раз играло аудио. Можно также получить доступ к управлению воспроизведением с экрана блокировки устройства.