gpt4 book ai didi

ios - 如何从 AVPlayer 中提取隐藏式字幕/字幕

转载 作者:行者123 更新时间:2023-12-04 19:22:43 29 4
gpt4 key购买 nike

由于 AVPlayer 渲染的隐藏式字幕有时会与其他 UI 组件重叠,我想在单独的 View 中渲染 cc。

我可以通过将 closedCaptionDisplayEnabled 设置为 NO 来关闭 AVPlayer 的 cc 渲染,但我没有找到提取我想要渲染的隐藏字幕的方法。

有人知道是否有办法从 AVPlayer/AVPlayerItem 中提取 CC 字符串吗?我能够使用 AVMediaTypeClosedCaption 识别 AVAssetTrack,但我不确定如何在一段时间内提取字符串。

最佳答案

“提取”字幕字符串的关键步骤是

  • 创建输出:let captionOutput = AVPlayerItemLegibleOutput() .
  • 将自己设置为代表:captionOutput.setDelegate(self, queue: DispatchQueue.main) .
  • 当流准备好后,添加输出:player.currentItem?.add(captionOutput) .
  • 创建代理扩展以获取标题更改:

  • extension ViewController: AVPlayerItemLegibleOutputPushDelegate {
    func legibleOutput(_ output: AVPlayerItemLegibleOutput,
    didOutputAttributedStrings strings: [NSAttributedString],
    nativeSampleBuffers nativeSamples: [Any],
    forItemTime itemTime: CMTime) {
    // Your attributed caption strings get delivered here!
    }
    }
  • (可选)隐藏播放器上的字幕:captionOutput.suppressesPlayerRendering = true .

  • 我在这里创建了一个示例项目: https://github.com/balnaves/AVPlayerItemLegibleOutputTest

    关于ios - 如何从 AVPlayer 中提取隐藏式字幕/字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37424880/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com