【问题标题】:Adding subtitles to AVPlayer video为 AVPlayer 视频添加字幕
【发布时间】:2017-05-03 07:47:58
【问题描述】:

我正在使用 AVPlayerView 来显示我的 Apps Bundle 目录中的一些本地视频。现在我想添加显示字幕的功能,以增加内容的可访问性。

由于我是程序员、电影制作人以及必须创建字幕的人,我对任何字幕格式和解决方案持开放态度。我发现了一些常见的格式(.srt.scc),但是,我想知道如何使用AVPlayer“以编程方式”使用它们。

我初始化视频如下:

let myVideoPlayer = AVQueuePlayer(url: URL(fileURLWithPath: "/myPath"))

例如,如果您在 QuickTime 中播放带字幕的视频,则将两个文件(字幕和视频)放在同一目录中就足够了。我找不到任何提示或解决方案,例如将字幕文件 URL 添加到 AVPlayer,这是我所期望的。 这似乎不是正确的方法?

Other threads 提到 AVPlayer closedCaptionDisplayEnabledClosed Caption 轨道配合得很好。但这又让我想到了一个问题:如何使用 AVPlayer 从单独的文件(如 .srt、.scc)显示字幕?

【问题讨论】:

    标签: swift avplayer avasset avqueueplayer closed-captions


    【解决方案1】:

    这是在 AVPlayer 中添加隐藏字幕的完美答案。只需将此代码粘贴到您的代码中即可。 谢谢

    let playerItem = AVPlayerItem(asset: asset)
    if let group = playerItem.asset.mediaSelectionGroup(forMediaCharacteristic: .legible) {
        let locale = Locale(identifier: "en")
        let options = AVMediaSelectionGroup.mediaSelectionOptions(from: group.options, with: locale)
        if let option = options.first {
            playerItem.select(option, in: group)
        }
    }
    

    【讨论】:

    • 这在this answer中已经提到。 在回答已有答案的旧问题时,请确保提供新颖的解决方案或比现有答案更好的解释。
    • 是的,我同意你的观点,但我刚刚上传了这个以确认完美匹配。没有别的@EricAya
    • 抱歉,我有一个问题。我可以问你吗?
    【解决方案2】:

    我使用了 ixany 的建议(为视频文件添加字幕),但后来我不得不使用此代码强制 AVPlayer 显示字幕:

    let playerItem = AVPlayerItem(asset: asset)
    if let group = playerItem.asset.mediaSelectionGroup(forMediaCharacteristic: .legible) {
        let locale = Locale(identifier: "en-EN")
        let options = AVMediaSelectionGroup.mediaSelectionOptions(from: group.options, with: locale)
        if let option = options.first {
            playerItem.select(option, in: group)
        }
    }
    

    请注意不要在 模拟器 中进行测试。对我来说,这只适用于真实设备。

    【讨论】:

      【解决方案3】:

      我最终得到了以下解决方法:将我的素材从 Final Cut Pro X 导出为 .m4v,使用 SRT Edit Pro 手动创建字幕,然后使用 Subler 将它们添加到视频文件中,所以我最后只有一个文件.这样 AVPlayer / QuickTime 会自动检测字幕轨道。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-04
        • 1970-01-01
        • 1970-01-01
        • 2014-01-29
        • 1970-01-01
        • 2021-06-23
        • 1970-01-01
        相关资源
        最近更新 更多