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

标签 ios avplayer avplayerviewcontroller closed-captions

在我的应用程序中,我具有隐藏字幕设置,并且我正在使用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

    关于ios - 如何在iOS中使用应用隐藏式字幕设置代替系统隐藏式字幕设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51551655/

    相关文章:

    ios - UICollectionView 动画,类似于 Google Play 新闻应用

    ios - systemLayoutSizeFitting 忽略布局约束并使用 ImageView 固有大小

    ios - 如何强制 AVPlayer 在暂停状态下暂停缓冲?

    ios - 通过点击 X 按钮识别 AVPlayerViewController 何时关闭

    android - 是否可以通过 Parse.com 对象将数据推送到我的移动应用程序?

    ios - 更改页面在 jquery mobile ios 和 phonegap 中不起作用

    ios - 为什么用swift录制后听不到音乐?

    ios - AVPlayer 需要很长时间才能开始播放

    swift - AVPlayerViewController 不旋转

    ios - Swift AVPlayerViewController 完成按钮关闭应用程序