Как использовать настройки закрытой подписи приложения вместо системных настроек закрытой подписи в 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);
Документация для того же здесь