在我的应用程序中,我有闭路字幕设置,我使用AVPLayer播放视频/直播内容,而不显示默认控件。在我的应用程序中,我可以根据开关状态启用或禁用类似开关的隐藏字幕,我将BOOL值存储在用户默认值中。基于用户默认值,我正在尝试使用下面的api为avplayer启用或禁用cc。
[self.player setClosedCaptionDisplayEnabled:enable];
现在的问题是,即使我在应用程序中关闭了cc,但iphone系统设置启用了cc,我也会在avplayer中获得cc。如果我关闭系统cc,那么我的应用程序设置将在avplayer中生效。
你能建议有什么方法可以绕过avplayer的系统设置吗。如果不能,请提供苹果文档链接,向clinet证明我们不能这样做。
您应该设置
self.player.appliesMediaSelectionCriteriaAutomatically = FALSE;
相反,这是不赞成的。
[self.player setClosedCaptionDisplayEnabled:enable];
默认情况下,AVPlayer根据系统首选项应用选择标准。要覆盖任何媒体选择组的默认条件,请使用-[AVPlayer setMediaSelectionCriteria:forMediaCharacteristic:]。
编辑
将使用此方法:
@方法setMediaSelectionCriteria:forMediaCharacteristic:
@abstract对具有指定媒体特性的媒体应用自动选择标准。
@param标准AVPlayerMediaSelectionCriteria的实例。
@param mediaCharacteristic要应用选择标准的媒体特性。支持的值包括AVMediaCharacteristicAudible、AVMediaCharacteriticLegible和AVMediaCharacteristicVisual。
@当:时,讨论标准将应用于AVPlayerItem
a( 已准备好播放
b( 特定媒体选择由不同组中的-[AVPlayerItem selectMediaOption:inMediaSelectionGroup:]进行。一个组中的自动选择可能受到另一组中的特定选择的影响。
c(基本系统偏好发生变化,例如系统语言、辅助功能字幕
任何组中的-[AVPlayerItem selectMediaOption:inMediaSelectionGroup:]所做的特定选择将覆盖该组中的自动选择,直到收到-[AVPPlayerItem selectedMediaOptionAutomaticalyMediaSelectionGroup:]为止。
- (void(setMediaSelectionCriteria:(可为null的AVPlayerMediaSelectionCriteria*(条件forMediaCharacteristic:(AVMediaCharacteristic(mediaCharacteristicNS_AVAILABLE(10_9,7_0(
相同的文档在这里