问题:

当iPad / iPhone启用了设置/常规/辅助功能/隐藏式字幕+ SDH时,无法使用selectMediaOption:inMediaSelectionGroup:禁用隐藏式字幕。禁用此设备设置后,可以使用selectMediaOption:inMediaSelectionGroup:在应用程序中启用/禁用隐藏式字幕。添加self.player.view.player.appliesMediaSelectionCriteriaAutomatically = FALSE;对观察到的应用程序行为没有影响。

关于此问题的有趣之处在于,有时应用程序可以成功启用/禁用字幕。在其他时候则不是。

如果期望设备设置始终覆盖应用程序设置,那么我希望行为保持一致,即应用程序将永远无法覆盖设备设置。

我的问题是:

  • 应用程序是否有望覆盖设备的隐藏字幕设置?
  • 如果允许应用程序覆盖设备设置,那么如何以确定性方式实现此功能(与我所看到的非确定性行为相比)?

  • 观察值:

    记录提供给selectMediaOption:inMediaSelectionGroup:的值以及关联设置的之前/之后的值,将显示预期的结果。即,提供给函数的参数是正确的,并且对基础设置的影响是预期的。

    当预期禁用字幕时,日志显示以下内容:
  • 提供给该功能的选项的值为空
  • AVMediaSelectionOption的当前值为<AVMediaSelectionKeyValueOption: 0x28188fb00, language = (null), mediaType = 'clcp', tagged media characteristics = {public.accessibility.transcribes-spoken-dialog, public.accessibility.describes-music-and-sound}, default = YES>
  • 调用selectMediaOption:inMediaSelectionGroup:后的AVMediaSelectionOption的值为null

  • 日志显示启用隐藏式字幕时情况相反。

    相关文章:
  • AVPlayer Closed Captions turn on/off
  • IOS AVPlayer cannot disable closed captions
  • How use app closedcaption settings instead of system closed caption settings in ios
  • 最佳答案

    虽然不是确切的答案,但我能够跟踪问题的原因。我对大多数(但不是全部)AVPlayer交互使用外部库。事实证明,它具有干扰AVPlayer行为的类似功能。有趣的是,如果我在外部库中调用AVPlayer函数(例如selectMediaOption:inMediaSelectionGroup:)和关联的函数,则它可以工作。这两个函数都不能单独运行,都必须调用。

    关于ios - 在AVPlayer中启用/禁用隐藏式字幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53788295/

    10-13 07:34