我想制作一个可以播放本地视频文件以及 HTTP 流的播放器,播放器应该有自定义的 ui 控件,在视频屏幕顶部手动呈现的字幕,在播放器顶部具有透明背景显示的自定义内容。
我应该有什么更简单的方法来实现这样的播放器、MPMoviePlayerController 或 AV Foundation?
我想制作一个可以播放本地视频文件以及 HTTP 流的播放器,播放器应该有自定义的 ui 控件,在视频屏幕顶部手动呈现的字幕,在播放器顶部具有透明背景显示的自定义内容。
我应该有什么更简单的方法来实现这样的播放器、MPMoviePlayerController 或 AV Foundation?
由于您需要显示字幕,因此最好使用AVPlayer
,不幸的是 MPMoviePlayer 播放类中缺少此功能。这显然很烦人,您应该考虑向 Apple 提交功能请求。您可以改用AVPlayer
该类,将其用作.closedCaptionDisplayEnabled
属性:缺点是使用起来有些复杂,并且仅在 iOS 4.0+ 上可用。
我会选择 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 没有提供更好的显示自定义标签的功能,尽管您也可以这样做。