pic*_*ano 6 ios avplayerviewcontroller tvos
使用 时AVPlayerViewController,用户可以选择字幕是使用特定语言off,还是设置为auto。设置requiresFullSubtitles属性我可以强制显示字幕,但这不是我想要的。
有没有办法检测用户为字幕设置选择了什么,是选择了语言off,还是auto?
您可以获取当前选择的语言选项,也可以在用于设置字幕或音轨时获取语言信息,如“添加字幕和替代音轨”中所述。
availableMediaCharacteristics可用的字幕和音轨可在视频资源的数组中找到。
AVMediaSelectionGroup它们按照是AVMediaCharacteristicAudible或AVMediaCharacteristicLegible...进行分组。
当前选定的选项可通过以下方式找到:
`func selectedMediaOption(in mediaSelectionGroup: AVMediaSelectionGroup) -> AVMediaSelectionOption?`
Run Code Online (Sandbox Code Playgroud)
它可能会返回nil“none”,或者会返回选择的任何语言。因此,您可以在该属性上设置一些自定义的“didChange”侦听器。似乎没有任何形式的公开通知,因此您必须自己制作。
每当您在播放器上选择/设置字幕选项时,您都可以捕获并使用相同的信息来执行您打算用它执行的任何操作:
if let group = asset.mediaSelectionGroup(forMediaCharacteristic: AVMediaCharacteristicLegible) {
let locale = Locale(identifier: "es-ES")
let options =
AVMediaSelectionGroup.mediaSelectionOptions(from: group.options, with: locale)
if let option = options.first {
/*** DO WHATEVER YOU WANT HERE AFTER CAPTURING THE LANGUAGE SELECTION & RETRIEVING AN AVAILABLE SUBTITLE ***/
playerItem.select(option, in: group)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |