如何从MPMoviePlayerController中播放的实际视频中获取坐标



我有一个MPMoviePlayerController在播放视频。

我的问题是,视频的尺寸会改变以保持纵横比,因此很多时候视频的边界和播放器的边界之间会有很大的黑色间隙。黑色间隙是水平和垂直的。

有没有办法让我知道实际视频包含的矩形是什么?然后我就可以找到相对于视频的触摸坐标。

要获得电影内容的适当尺寸/纵横比,可以使用MPMoviePlayerController属性naturalSize


来自MPMoviePlayerController类参考

naturalSize

电影帧的宽度和高度。(只读)

@property (nonatomic, readonly) CGSize naturalSize

讨论

此属性报告中视频的干净光圈正方形像素。因此,报告的维度考虑了变形内容和光圈模式。

电影的自然大小在播放。这通常发生在流的比特率内容更改或播放在仅音频和音频和视频的组合。

可用性在iOS 3.2及更高版本中可用。声明于MPMoviePlayerController.h


现在让我们假设您正在播放一部返回自然大小的280x150的电影。这导致大致为1.87(宽度除以高度)的纵横比。现在让我们假设您的屏幕分辨率为768x1024(iPad,纵向)。如果现在你想以最满屏的方式显示这部电影,但仍然保持一些控件可见,你可以使用以下计算方法来计算实际的MPMoviePlayerController.view高度:

768 / 1.87 = 411(四舍五入)

生成的帧是:

MPMoviePlayerController.view.frame = CGRectMake(0.0f, 
                                                (1024.0f - 411.0f) / 2.0f, 
                                                768.0f, 
                                                411.0f);

最新更新