iPhone 上的 MPMoviePlayerController 替代品?

Posted

技术标签:

【中文标题】iPhone 上的 MPMoviePlayerController 替代品?【英文标题】:MPMoviePlayerController alternatives on iPhone? 【发布时间】:2009-04-23 09:41:25 【问题描述】:

我正在寻找 iPhone 上 MPMoviePlayerController 的替代品。作为视频播放器,它的功能非常有限。根据class reference,例如,无法获取当前播放时间或设置新时间。它只是播放和停止。

是否有提供更多功能的 iPhone 视频播放中间件解决方案? CRI has something in development 但尚未发布。我找不到其他任何东西。

谢谢。

【问题讨论】:

我绝不支持 MPMoviePlayerController,但它确实有一个“initialPlaybackTime”属性。根据您的需要,这与播放/完成通知和计时器/线程相结合可以提供一定程度的额外控制。虽然不是很漂亮! :) 【参考方案1】:

请记住,即使项目是 GPL,这并不意味着您无法就底层代码的 LGPL 选项联系作者。

如果您需要处理特定的视频类型,您自己的解决方案可能是使用 openGL 作为视频的合成表面,并获得像 ffmpeg 这样的幕后库。

NeHe 有一个将 AVI 渲染到 openGL 的示例:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=35

FFMpeg 最近被移植到 iPhone 上,它是一个基于 LGPL 的产品:http://geek.thinkunique.org/2008/03/05/ffmpeg-on-the-iphone/

(注意:关于 LGPL 在 iPhone 上的商业用途存在一些争议,因为许可证在提及库链接时引用了“动态”一词,这是 iPhone 不允许的。我没有看到任何项目团队对他们的代码在 iPhone 上静态使用,但您应直接联系作者进行澄清。)

另一个(虽然是 GPL)版本的 OpenGL 视频播放器是:http://code.google.com/p/glover/

您通过这样的解决方案获得的基本上是绕过 iPhone/Mac/CALayer 的特定技术细节,并通过 OpenGL 利用现有的视频知识库,虽然并不广泛,但仍然得到广泛支持。

如果您正在处理特定的视频样式,那么您可能想查看供应商是否可以直接从供应商处获取特定视频格式的库,而不是使用 FFMpeg 等多功能工具。完成合成后,视频几乎可以来自任何库。

巴尼

【讨论】:

【参考方案2】:

您可以使用AVPlayer。见the documentation

然后您可以使用currentTime 获取当前播放时间,并使用seekToTime: 查找指定时间。

您必须将AVPlayer 实例的视觉输出定向到AVPlayerLayer 对象(CALayer 的子类)。见first listing here。

【讨论】:

【参考方案3】:

VLC 已ported to iPhone 但未使用官方SDK。

【讨论】:

感谢您的提醒。我正在寻找可以用作开发人员在自定义应用程序中播放视频的东西,并且没有使用比 MPMoviePlayerController 更多功能的 GPL 许可证。花钱的中间件很好——我就是没找到。

以上是关于iPhone 上的 MPMoviePlayerController 替代品?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone上的聚胺

iPhone上的TCP打孔

在横向屏幕上旋转不是 iPhone 5 和 iPhone 6 上的视图

UINavigationController 作为 iPhone 上的弹出框?

Rails上的iPhone

iPhone 上的性能计数器