Ios AVPlayer-如何通过编程方式打开/关闭来自HTTP直播视频的CC?

Ios AVPlayer-如何通过编程方式打开/关闭来自HTTP直播视频的CC?,ios,swift,swiftui,xcode6,avplayer,Ios,Swift,Swiftui,Xcode6,Avplayer,我正在尝试创建一个自定义视频播放器。我正在使用SwiftUI(v1和XCode 11.5),并试图允许用户选择是否打开/关闭CC,以及选择所需的语言 如何做到这一点?到目前为止,我尝试的是将AVPlayer的appliesmediaSelectionCriteria自动设置为true。然后,如果从我的iPhone的辅助功能设置中启用,则会显示CC avPlayer.appliesMediaSelectionCriteriaAutomatically = true 我还尝试忽略系统首选项,将其设

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

如何做到这一点?到目前为止,我尝试的是将AVPlayer的appliesmediaSelectionCriteria自动设置为true。然后,如果从我的iPhone的辅助功能设置中启用,则会显示CC

avPlayer.appliesMediaSelectionCriteriaAutomatically = true
我还尝试忽略系统首选项,将其设置为false,然后使用isClosedCaptionDisplayEnabled属性启用CC,但没有达到预期效果(isClosedCaptionDisplayEnabled也不推荐)

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


注意:我正在播放的视频是从Vimeo流式播放的,如果有必要的话。

首先你应该从流式播放中获得所有可用的CC,然后选择一个你需要的,例如:

let asset=player.currentItem?.asset
如果let group=asset?.mediaSelectionGroup(forMediaCharacteristic:.易读){
让listCC=group.options
如果让firstCC=listCC.first{
player.currentItem?选择(第一次抄送,在:组中)
}
}
如果要禁用CC,只需调用:

player.currentItem?选择(无,在:组中)

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

let asset=player.currentItem?.asset
如果let group=asset?.mediaSelectionGroup(forMediaCharacteristic:.易读){
让listCC=group.options
如果让firstCC=listCC.first{
player.currentItem?选择(第一次抄送,在:组中)
}
}
如果要禁用CC,只需调用:

player.currentItem?选择(无,在:组中)

谢谢您的回答。我花了很长时间查阅文档,并自己找到了这个。你介意分享一下你是如何获得这些信息的吗?@DI.dev我多年来一直在iOS上进行流媒体播放,这是最好的信息来源(包括文档、苹果的示例/演示,当然还有Stackoverflow),谢谢你的回答。我花了很长时间查阅文档,并自己找到了这个。你介意分享一下你是如何获得这些信息的吗?@DI.dev我多年来一直致力于在iOS上进行流媒体播放,这是最好的信息来源(包括文档、苹果的示例/演示,当然还有Stackoverflow)
avPlayer.appliesMediaSelectionCriteriaAutomatically = false
avPlayer.isClosedCaptionDisplayEnabled = true