objective-c - AVFoundation,如何显示字幕?

标签 objective-c cocoa avfoundation avplayer avasset

我正在开发一个适用于 macOS 的视频编辑工具,使用 cocoa 和 avfoundation

NSAsset 对象使用视频文件,该资源具有视频轨道、音频和(如苹果文档中提到的)字幕!!

我可以播放视频和音轨,但是字幕呢??? 它必须是视频文件中附加的字幕轨道吗?我在哪里可以找到一个??

我希望能够显示来自单独文件的字幕,例如 srt 和其他格式? 在这种情况下,avfoundation 有什么要做的,或者我应该自己实现它并在另一层中显示/隐藏字幕?

最佳答案

AVFoundation 支持隐藏式字幕轨道。不知道是否支持字幕轨。无论哪种方式,它们都必须是 Assets 的一部分,而不是单独的文件。

如果你想支持SRT文件,你需要自己做。边界时间观察者会有所帮助,但要注意溢出:玩家可能会提前、延迟或根本不调用观察者 block (合并)。

如果您正在制作使用 AVComposition 的编辑器,您可能能够创建字幕轨道并使用 SRT 文件中的信息填充它。我没有研究过这个。

关于objective-c - AVFoundation,如何显示字幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885227/

相关文章:

ios - 在 iOS 的 UIDatePicker 中隐藏日期

macos - 我有一个为 Lion 制作的应用程序,但我希望它能在低至 10.4 的 Mac OS 版本上运行

macos - Apple 的专业应用程序如何强制使用 "graphite"外观?

ios - 从 VTCompressionOutputCallback 中引用 `self`

iphone - 从视频中删除音频

ios - 如何将核心数据中每个对象的小数值相加得出总数?

ios - 需要更改 NSURLConnection 方法以通过身份验证质询

objective-c - 为什么 NSObject 的 "isMemberOfClass:class"在 XCode 的自动补全中指定了 __unsafe_unretained?

objective-c - NSView 约束 - 如何强制 subview 的纵横比保持不变?

objective-c - 使 AVAudioPCMBuffer 工作(AVAudioFile.mm 错误代码 -50)