如何在MPMoviePlayerController中显示字幕

8

我制作了一个自定义视频播放器,所有按钮都可以正常使用。我需要知道MPMoviePlayerController在视频有字幕选项时显示字幕的代码是什么。我没有找到任何示例或知道这个字幕按钮背后的代码的人。我应该在哪里找到这个?


8
不必大喊大叫! - dasdom
3个回答

4
您需要实现自己的字幕文件解析器。.srt文件格式非常简单,这里有一个关于如何解析它的讨论。
更具挑战性的部分是同步字幕显示(可能只是放置在MPMoviePlayerController视图上方的一个UILabel),与当前电影时间相匹配。您应该编写一个类,可以请求subtitleStringAtTimeInterval: 这种类型的东西(它将字幕保留在内存中,并使字幕获取更快)。然后定期更新字幕(使用NSTimer或后台线程,在每次字幕更新之间休眠一小段时间间隔)。

1
你有这方面的代码吗?我的意思是如何将这个Python代码集成到iOS中的MPMoviePlayerConroller代码中。 - Mrunal
1
@ Mason,你认为这是否是张贴者所指的? - jbat100
1
@jbat100 在重新阅读原问题后,我发现我错了,并且在SO允许的几个小时内撤销了负评。对此我深表歉意。 - Mason G. Zhwiti

2

1
那个演示是针对内置播放器的,而不是当你使用MPMoviePlayerController时在代码中得到的那个。 - Jess Bowers
这可能已经改变了,但在iOS 6中,如果应用程序以全屏/宽屏显示视频,则CC按钮也会出现在那里。虽然如果应用程序本身可以启用CC功能会更好。 - Mason G. Zhwiti

2
如果您的媒体文件含有内置字幕,MPMoviePlayerViewController 将会显示一个按钮来启用/禁用字幕。默认情况下,字幕是被禁用的,并且无法通过编程方式激活。相反,您可以使用带有 closedCaptionDisplayEnabled 属性的 AVPlayer。但是仅适用于 iOS 4+。

2
“closedCaptionDisplayEnabled”是用来开启/关闭视频文件中嵌入的软字幕吗?如果文件有多个字幕轨道,我能否通过编程选择例如英文或法文?文档几乎没有提供任何信息,非常感谢您提供的帮助。谢谢! - Joseph Lin
1
请注意,闭路字幕与字幕不同,它们嵌入在视频流中(需要解复用),而字幕则是单独的文件或单独的流。 - jbat100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接