【问题标题】:How to display subtitles within MPMoviePlayerController如何在 MPMoviePlayerController 中显示字幕
【发布时间】:2012-01-03 00:15:34
【问题描述】:

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

【问题讨论】:

  • 没有理由大喊大叫!

标签: iphone ios ipad mpmovieplayercontroller subtitle


【解决方案1】:

您必须实现自己的字幕文件解析器。 .srt 文件格式非常简单,here 是关于如何解析它的讨论。

更具挑战性的一点是将字幕显示(可能只是放在MPMoviePlayerController 视图顶部的UILabel)与当前电影时间同步。您应该编写一个可以要求 subtitleStringAtTimeInterval: 的类(它将字幕保存在内存中并使字幕获取更快)。然后定期更新字幕(使用NSTimer 或在每次字幕更新之间休眠一小段时间的后台线程)。

【讨论】:

  • 你有这方面的代码吗?我的意思是如何将此 python 代码集成到 iOS 中的 MPMoviePlayerConroller 代码。
  • @Mason,你认为这就是海报所指的吗?
  • @jbat100 重新阅读原始问题后,我发现我错了,当 SO 在几个小时内允许时,我会撤消否决票。我很抱歉。
【解决方案2】:

无需代码...如果视频中对软字幕进行了编码,AFAIK 按钮会自动显示。

请看这里:http://www.bitfield.se/isubtitle/on_iphone_ipod.html

【讨论】:

  • 该演示是针对内置播放器的,而不是您在使用 MPMoviePlayerController 时在代码中获得的那个
  • 这可能已经改变,但在 iOS 6 中,如果应用程序以全屏/宽屏方式显示视频,CC 按钮也会出现在那里。虽然如果应用程序本身可以启用 CC 那就太好了。
【解决方案3】:

如果您的媒体文件嵌入了字幕,MPMoviePlayerViewController 将显示一个按钮来启用/禁用字幕。默认情况下,字幕是禁用的,不能以编程方式激活。

相反,您可以使用带有 closedCaptionDisplayEnabled 属性的 AVPlayer。但只有 iOS 4+

【讨论】:

  • 'closedCaptionDisplayEnabled' 是否打开/关闭视频文件中嵌入的软字幕?如果文件有多个字幕轨道,我可以通过编程方式在英语或法语之间进行选择吗?该文档几乎没有说明任何内容,非常感谢您提供的任何帮助。谢谢!
  • 请注意,隐藏式字幕的不同之处在于它们嵌入在视频流中(并且需要解复用),而字幕是单独的文件或单独的流。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多