我使用AVPlayer创建了自己的视频播放器,除了隐藏式字幕外,还能让所有内容正常工作。我有一个我正在测试的视频,而且我知道隐藏式字幕未被烘焙。我可以在其他视频观看者中禁用它们。
closedCaptionDisplayEnabled
我将AVPlayer上的该属性设置为NO并记录它以确保它设置为no但仍然显示标题。有谁知道为什么会这样?
答案 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);