Mat*_*hew 5 ios avplayer closed-captions avplayeritem
由于 AVPlayer 呈现的隐藏字幕有时会与其他 UI 组件重叠,因此我想在单独的视图中呈现 cc。
我可以通过将 closedCaptionDisplayEnabled 设置为 NO 来关闭 AVPlayer 的 cc 渲染,但我没有找到一种方法来提取我想要渲染的隐藏式字幕。
有人知道是否有办法从 AVPlayer/AVPlayerItem 中提取 CC 字符串吗?我能够使用 AVMediaTypeClosedCaption 识别 AVAssetTrack,但我不确定如何在特定时间内提取字符串。
小智 2
“提取”字幕字符串的关键步骤是
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!
}
}
Run Code Online (Sandbox Code Playgroud)
captionOutput.suppressesPlayerRendering = true。我在这里创建了一个示例项目:https ://github.com/balnaves/AVPlayerItemLegibleOutputTest
| 归档时间: |
|
| 查看次数: |
1276 次 |
| 最近记录: |