Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在AVPlayer中启用/禁用闭路字幕_Ios_Avfoundation_Avplayer - Fatal编程技术网

Ios 在AVPlayer中启用/禁用闭路字幕

Ios 在AVPlayer中启用/禁用闭路字幕,ios,avfoundation,avplayer,Ios,Avfoundation,Avplayer,问题: 当iPad/iPhone具有设置/常规/辅助功能/闭路字幕+SDH功能时,不能使用selectMediaOption:inMediaSelectionGroup:禁用闭路字幕。禁用此设备设置时,可以使用selectMediaOption:inMediaSelectionGroup:在应用程序中启用/禁用闭路字幕。添加self.player.view.player.appliesMediaSelectionCriteriaAutomatically=FALSE对观察到的应用程序行为没有影响

问题:

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

这个问题的有趣之处在于,有时应用程序成功地启用/禁用了字幕。在其他时候,情况并非如此

如果期望设备设置总是覆盖应用程序设置,那么我希望行为是一致的,即应用程序永远无法覆盖设备设置

我的问题是:

  • 应用程序是否可以覆盖设备的闭路字幕设置
  • 如果允许应用程序覆盖设备设置,如何以确定性的方式实现这一点(与我看到的非确定性行为相比)
  • 观察结果:

    记录提供给
    selectMediaOption:inMediaSelectionGroup:
    的值以及相关设置的前后值,显示预期结果。也就是说,提供给函数的参数是正确的,对基础设置的影响是预期的

    当预期禁用字幕时,日志显示以下内容:

  • 提供给函数的选项的值按预期为null
  • AVMediaSelectionOption
    的当前值为

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

    我忘了提到我在iOS 12.1上看到了这一点,你找到解决方案了吗?我在下面的帖子中给出了答案的提示。很难找到这方面的文档,但请检查
    avmediaCharacteristicLeable
    。这可能就是你需要的。谢谢你的回复。你能给我一些示例代码让我检查一下吗。以及我需要使用哪个外部库来完成此操作。