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

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

[self.player setClosedCaptionDisplayEnabled:enable];

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

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


person Naresh Gadamsetty    schedule 27.07.2018    source источник


Ответы (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 selectMediaOptionAutomaticallyInMediaSelectionGroup:].

  • (void) setMediaSelectionCriteria: (nullable AVPlayerMediaSelectionCriteria *) критерии для MediaCharacteristic: (AVMediaCharacteristic) mediaCharacteristic NS_AVAILABLE (10_9, 7_0);

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

person Bhavin Kansagara    schedule 27.07.2018
comment
Привет, спасибо, Бхавин, за твою помощь. У меня есть одно сомнение здесь. Этот код сообщит игроку, что он неправильно использует системные настройки. ?self.player.appliesMediaSelectionCriteriaAutomatically = FALSE; Если это так, как мы можем включать и отключать cc из приложения? Какой API следует использовать. - person Naresh Gadamsetty; 27.07.2018