swift - 如何在 tvOS 中将外部 .vtt 字幕文件添加到 AVPlayerViewController

标签 swift swift3 tvos

问题:

如何在 tvOS 中将外部 WebVTT 文件添加到我的 AVPlayer?

描述:

我一直在看this "What's New in HTTP Live Streaming" by Apple他们讨论了实现外部 WebVTT 文件的不同方式。

整个字幕域对我来说都很新,所以我很难很好地掌握这个概念。在视频中,他们谈论了许多我不太了解的不同事物,例如(字幕播放列表)。然而,通过所有我主要关心的是将 .vtt 文件添加到我的 AVPlayer。

在视频中他们讨论了这个 AVMediaSelectionGroup() 但我对如何使用以及如何用我的 AVPlayerViewController 实现它感到很困惑:

class PlayerViewController: AVPlayerViewController {

    override func viewDidLoad() {
        self.setupVideoPlayerView()
    }

    private func setupVideoPlayerView()
    {
        let path = "https://link.to.my.video.mp4"
        let subTitlePath = "https://link.to.my.webvtt.file.vtt"

        let nsURL = URL(string: path)

        let avPlayer = AVPlayer(url: nsURL!)

        self.player = avPlayer

        self.player!.seek(to: kCMTimeZero)
        self.player!.play()

    }
}

AVMediaSelectionGroup 好像没有添加字幕的方法?我能找到的最接近的东西(提到字幕)是以下方法:

//Where self is the instance of AVPlayerViewController
self.allowedSubtitleOptionLanguages
self.requiresFullSubtitles

最佳答案

虽然在 apple 文档中几乎没有提及,但我在一篇文章中读到字幕需要嵌入到 HLS 流中。

字幕不打算手动添加..虽然我确实找到了一个显示黑客攻击的 StackOverflow 帖子。不确定它是否有效。

看到我使用 VIMEO Pro,提供的 HLS 流嵌入了 WebVTT 字幕(我上传到 vimeo),从而解决了我的问题。

关于swift - 如何在 tvOS 中将外部 .vtt 字幕文件添加到 AVPlayerViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589710/

相关文章:

swift - 更改 UISearchController View 的样式?

ios - "automatically adjusts font requires using a dynamic type text style"警告是什么意思?

ios - 在 iOS 中调整两个对齐标签中的文本大小

macos - 如何以编程方式将 NSWindow 设置为全屏?

swift - 如何根据用于两个不同目的的 UITableViewController 中的不同条件设置 UITableViewAccessoryType?

swiftui - 如何将 tvOS 的焦点引擎与 SwiftUI 结合使用?

ios - 以编程方式更改 imageview 高度 ios

ios - Swift 3 - 我的 UIViewController 在横向模式下的背景图像问题

ios - 如何在一个框架下导入多个swift游戏并为其创建一个主菜单?

cocoa - tvOS applicationDidBecomeActive 在电视关闭时重复调用