什么应该是更好的方法,MPMoviePlayerController 或 AVFoundation
Posted
技术标签:
【中文标题】什么应该是更好的方法,MPMoviePlayerController 或 AVFoundation【英文标题】:What should be better approach, MPMoviePlayerController or AVFoundation 【发布时间】:2012-12-17 02:39:47 【问题描述】:我想制作一个可以播放本地视频文件以及HTTP Stream的播放器,播放器应该有自定义的ui控件,在视频屏幕顶部手动渲染的字幕,在播放器顶部显示透明背景的自定义内容。
我应该有什么更简单的方法来实现这样的播放器、MPMoviePlayerController 或 AV Foundation?
【问题讨论】:
【参考方案1】:由于需要显示字幕,最好使用AVPlayer
,
不幸的是,MPMoviePlayer 播放类中缺少此功能。这显然很烦人,您应该考虑向 Apple 提交功能请求。您可以改用AVPlayer
类,将其作为.closedCaptionDisplayEnabled
属性:缺点是使用起来有些复杂,并且仅在ios 4.0+ 上可用。
【讨论】:
【参考方案2】:我会选择 MPMoviePlayerController。它的级别更高一些,因此实施起来需要的工作更少。
MPMoviePlayerController 提供了一个 UIView 来显示视频,你可以将任何你喜欢的内容添加到这个视图中。文档说:
You can add subviews to the view in this property. You might do this
in cases where you want to display custom playback controls or add
other custom content that is relevant to your app.
如果您愿意,也可以使用 MPMoviePlayerViewController 来显示视图,或者只是将视图添加到现有视图之一。
它将为您显示控件,但您可以轻松关闭此功能并显示您自己的自定义控件。您必须使用 AVPlayer 来执行此操作,因为它不提供任何用户控件。
我不确定@MilKyWaY 的意思是“由于您需要显示字幕,因此最好使用 AVPlayer,不幸的是 MPMoviePlayer 播放类中缺少此功能。”这正是 MPMoviePlayerController 的 view 属性的用途。 AVPlayer 没有提供更好的显示自定义标签的功能,尽管您也可以使用它。
【讨论】:
如果“字幕”是指隐藏式字幕,则 AVPlayer 和 MPMoviePlayerController 都可以显示字幕。您可以使用 AVPlayer 在代码中打开和关闭它。使用 MPMoviePlayerController,用户可以在“设置”应用中打开和关闭它。 是的,我的意思是隐藏式字幕。AVPlayer
和 MPMoviePlayerController
都支持显示隐藏式字幕。后者确实使我的解决方案更简单,但在全屏模式下,MPMoviePlayerController
不会显示我添加的自定义视图
不幸的是,MPMoviePlayerViewController 在 iOS 9 中已被弃用。以上是关于什么应该是更好的方法,MPMoviePlayerController 或 AVFoundation的主要内容,如果未能解决你的问题,请参考以下文章
子选择或连接?有没有更好的方法来编写这个 mysql 查询?