AVPlayer-如何通过程序打开/关闭来自HTTP直播视频的CC



我正在尝试创建一个自定义视频播放器。我正在使用SwiftUI(v1和XCode 11.5(,并试图允许用户选择是否打开/关闭CC,以及选择所需的语言。

怎样才能做到这一点?到目前为止,我所尝试的是将AVPlayerappliesMediaSelectionCriteriaAutomatic属性设置为true。如果从我的iPhone的辅助功能设置中启用,则会显示CC。

avPlayer.appliesMediaSelectionCriteriaAutomatically = true

我还尝试忽略系统首选项,将其设置为false,然后使用isClosedCaptionDisplayEnabled属性来启用CC,但它没有达到我预期的效果(isClosedCAdaptionDisplayEnabled也不推荐使用(。

avPlayer.appliesMediaSelectionCriteriaAutomatically = false
avPlayer.isClosedCaptionDisplayEnabled = true

然而,我需要它们以编程方式显示/隐藏(例如,当按下按钮时(,并且应该忽略操作系统关于字幕的设置。此外,我还想选择CC的语言。这是可以实现的吗?

注意:如果重要的话,我正在播放的视频是从Vimeo流式传输的

首先,您应该从流中获取所有可用的CC,然后选择一个您需要的CC,例如:

let asset = player.currentItem?.asset
if let group = asset?.mediaSelectionGroup(forMediaCharacteristic: .legible) {
let listCC = group.options
if let firstCC = listCC.first {
player.currentItem?.select(firstCC, in: group)
}
}

如果要禁用CC,只需调用:

player.currentItem?.select(nil, in: group)

相关内容

  • 没有找到相关文章

最新更新