IOS AVPlayer不能禁用隐藏字幕

我已经使用AVPlayer创build了自己的video播放器,并且除了隐藏字幕之外,所有的东西都能正常工作。 我有一个我正在testing的video,我知道一个事实,隐藏式字幕没有烘烤。我可以禁用他们在其他video观众。

closedCaptionDisplayEnabled 

我把AVPlayer上的那个属性设置为NO并且logging了它,以确保它被设置为no,但是字幕仍然出现。 有谁知道这可能是为什么?

是。

这是正确的方法:

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

我通过下面的代码片断禁用字幕

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

你可以检查suppressesPlayerRendering API

我的第一个想法是去字幕和字幕(设置 – >一般 – >辅助function – >字幕和字幕设置),并确保“隐藏字幕+ SDH”被closures。 即使您将closedCaptionDisplayEnabled设置为NO,该设置也会覆盖它。

你可以使用UIAccessibilityIsClosedCaptioningEnabled()来testing你的代码里的设备是否启用了这个function,如果是的话,它将返回一个BOOL。 但是,此设置不能在应用程序中更改。

这工作MACaptionAppearanceSetDisplayType(kMACaptionAppearanceDomainUser,kMACaptionAppearanceDisplayTypeForcedOnly);