在我的应用程序中,我具有隐藏字幕设置,并且我正在使用AVPLayer播放视频/实时内容,而没有显示默认控件。在我的应用程序中,我可以基于该开关状态来启用或禁用诸如开关之类的隐藏式字幕,我将BOOL值存储在userdefaults中。基于userdefaults我试图使用下面的api为avplayer启用或禁用cc。
[self.player setClosedCaptionDisplayEnabled:enable];
现在的问题是,即使我在应用程序中关闭了cc,但iPhone系统设置cc启用了该功能,我在avplayer中却获得了cc。如果我关闭系统cc,则我的应用设置会在avplayer中生效。
您能否建议是否有任何方法可以绕过avplayer的系统设置。如果不能,请您提供苹果文件链接作为我们无法做到这一点的证明。
你应该设置
self.player.appliesMediaSelectionCriteriaAutomatically = FALSE;
取而代之的是不推荐使用的方法。
[self.player setClosedCaptionDisplayEnabled:enable];
默认情况下,AVPlayer基于系统首选项应用选择条件。要覆盖任何媒体选择组的默认条件,请使用-[AVPlayer setMediaSelectionCriteria:forMediaCharacteristic:]。
编辑
将使用此方法:
@method setMediaSelectionCriteria:forMediaCharacteristic:
@abstract将自动选择标准应用于具有指定介质特征的介质。
@参数标准
AVPlayerMediaSelectionCriteria的实例。
@param media特色
要应用选择标准的媒体特征。支持的值包括AVMediaCharacteristicAudible,AVMediaCharacteristicLegible和AVMediaCharacteristicVisual。
@discussion条件将在以下情况下应用于AVPlayerItem:
a)准备玩
b)通过-[AVPlayerItem selectMediaOption:inMediaSelectionGroup:]在另一个组中进行特定的媒体选择。一组中的自动选择可能会受到另一组中特定选择的影响。
c)底层系统偏好设置发生更改,例如系统语言,可访问性字幕。
在任何组中由-[AVPlayerItem selectMediaOption:inMediaSelectionGroup:]进行的特定选择将覆盖该组中的自动选择,直到收到-[AVPlayerItem selectMediaOptionAutomaticallyInMediaSelectionGroup:]。
(void)setMediaSelectionCriteria :(可空AVPlayerMediaSelectionCriteria *)条件
forMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic
NS_AVAILABLE(10_9,7_0);
相同的文档是
here
我是一名优秀的程序员,十分优秀!