IOS AVPlayer无法禁用隐藏式字幕

时间:2016-01-13 21:52:24

标签: ios objective-c avplayer

我使用AVPlayer创建了自己的视频播放器,除了隐藏式字幕外,还能让所有内容正常工作。我有一个我正在测试的视频,而且我知道隐藏式字幕未被烘焙。我可以在其他视频观看者中禁用它们。

closedCaptionDisplayEnabled

我将AVPlayer上的该属性设置为NO并记录它以确保它设置为no但仍然显示标题。有谁知道为什么会这样?

4 个答案:

答案 0 :(得分:5)

我通过以下代码段禁用字幕

let output = AVPlayerItemLegibleOutput.init()
    output.setDelegate(self, queue:DispatchQueue.main)
    output.suppressesPlayerRendering = true
    playerItem?.add(output)

您可以在那里查看suppressesPlayerRendering api

答案 1 :(得分:3)

这是正确的方法:

let group = self.player!.currentItem!.asset.mediaSelectionGroupForMediaCharacteristic(AVMediaCharacteristicLegible)
self.player?.currentItem?.selectMediaOption(nil, inMediaSelectionGroup: group!)

答案 2 :(得分:0)

我的第一个想法是去字幕&字幕(设置 - >常规 - >辅助功能 - >字幕和字幕设置)并确保关闭“隐藏字幕+ SDH”。即使您将closedCaptionDisplayEnabled设置为NO,此设置也会覆盖它。

您可以使用UIAccessibilityIsClosedCaptioningEnabled()在代码中的设备上测试是否启用了此功能,该功能将返回BOOL,如果是,则返回true。但是,此设置无法在应用内进行更改。

答案 3 :(得分:0)

这很有效 MACaptionAppearanceSetDisplayType(kMACaptionAppearanceDomainUser,kMACaptionAppearanceDisplayTypeForcedOnly);