如何在iOS中使用应用隐藏式字幕设置代替系统隐藏式字幕设置

时间:2018-07-27 06:04:20

标签: ios avplayer avplayerviewcontroller closed-captions

在我的应用程序中,我具有隐藏字幕设置,并且我正在使用AVPLayer播放视频/实时内容,而没有显示默认控件。在我的应用中,我可以基于该开关状态来启用或禁用诸如开关之类的隐藏式字幕,我将BOOL值存储在userdefaults中。根据用户默认设置,我尝试使用以下api为avplayer启用或禁用cc。

[self.player setClosedCaptionDisplayEnabled:enable];

现在的问题是,即使我在应用程序中关闭了cc,但iPhone系统设置cc启用了该功能,我在avplayer中却获得了cc。如果我关闭系统cc,则我的应用设置会在avplayer中生效。

请问您有什么办法可以绕过avplayer的系统设置。如果不能,请提供苹果文件链接作为证明我们无法做到这一点的证明。

1 个答案:

答案 0 :(得分:0)

您应该设置

self.player.appliesMediaSelectionCriteriaAutomatically = FALSE;

已弃用此方法。

[self.player setClosedCaptionDisplayEnabled:enable];
  

默认情况下,AVPlayer根据系统偏好设置应用选择条件。要覆盖任何媒体选择组的默认条件,请使用-[AVPlayer setMediaSelectionCriteria:forMediaCharacteristic:]。

编辑

将使用此方法:

@method setMediaSelectionCriteria:forMediaCharacteristic:

@abstract对具有指定媒体特征的媒体应用自动选择标准。

@param标准    AVPlayerMediaSelectionCriteria的实例。

@param media的特征    要应用选择标准的媒体特征。支持的值包括AVMediaCharacteristicAudible,AVMediaCharacteristicLegible和AVMediaCharacteristicVisual。

@讨论标准将在以下情况下应用于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