Как использовать настройки закрытой подписи приложения вместо системных настроек закрытой подписи в ios

В моем приложении я закрыл настройки подписи и использую AVPLayer для воспроизведения видео / живого контента без отображения элементов управления по умолчанию. В моем приложении я могу включить или отключить закрытые титры, такие как переключатель, основываясь на этом статусе переключателя. Я сохраняю значение BOOL в пользовательских ошибках. На основе userdefaults я пытаюсь включить или отключить cc для avplayer, используя ниже API.

[self.player setClosedCaptionDisplayEnabled:enable];

Теперь проблема в том, что даже если я выключил cc в приложении, но настройки системы iphone cc включены, я получаю cc в avplayer. Если я выключил систему, тогда настройки моего приложения вступают в силу в avplayer.

Подскажите, пожалуйста, есть ли способ обойти системные настройки для avplayer. Если не можете, пожалуйста, предоставьте ссылку на документ Apple, чтобы показать в качестве доказательства для клиники, что мы не можем сделать это таким образом.

1 ответ

Вы должны установить

self.player.appliesMediaSelectionCriteriaAutomatically = FALSE;

Вместо этого, который не рекомендуется.

[self.player setClosedCaptionDisplayEnabled:enable];

По умолчанию AVPlayer применяет критерии выбора на основе системных настроек. Чтобы переопределить критерии по умолчанию для любой группы выбора медиа, используйте -[AVPlayer setMediaSelectionCriteria:forMediaCharacteristic:].

РЕДАКТИРОВАТЬ

Этот метод будет использоваться:

@method setMediaSelectionCriteria: forMediaCharacteristic:

@abstract Применяет критерии автоматического выбора для носителей с указанными характеристиками.

@param критерии Экземпляр AVPlayerMediaSelectionCriteria.

@param mediaCharacteristic Характеристика носителя, для которого должны применяться критерии выбора. Поддерживаемые значения включают AVMediaCharacteristicAudible, AVMediaCharacteristicLegible и AVMediaCharacteristicVisual.

@discussion Критерии будут применены к AVPlayerItem, когда:

а) Готово к игре

б) Определенные выборки носителей осуществляются с помощью -[AVPlayerItem selectMediaOption:inMediaSelectionGroup:] в другой группе. На автоматический выбор в одной группе может влиять конкретный выбор в другой группе.

c) Изменение основных настроек системы, например, языка системы, подписей о доступности.

Определенные выборы, сделанные с помощью -[AVPlayerItem selectMediaOption:inMediaSelectionGroup:] в любой группе переопределят автоматический выбор в этой группе до тех пор, пока не будет получен [AVPlayerItem selectMediaOptionAutomaticsInMediaSelectionGroup:].

  • (void) setMediaSelectionCriteria: (обнуляемые AVPlayerMediaSelectionCriteria *) критерии для MediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic NS_AVAILABLE(10_9, 7_0);

Документация для того же здесь

Другие вопросы по тегам