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

时间:2012-01-23 07:12:07

标签: ios mpmovieplayercontroller

我有一个播放视频的MPMoviePlayerController。

我的问题在于,视频的尺寸会随着长宽比的变化而变化,因此很多时候视频边界与播放器边界之间存在较大的黑色差距。 黑色间隙是水平和垂直的。

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

1 个答案:

答案 0 :(得分:5)

要获得电影内容的正确尺寸/宽高比,您可以使用MPMoviePlayerController属性naturalSize


来自MPMoviePlayerController Class Reference

naturalSize

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

@property (nonatomic, readonly) CGSize naturalSize
  

讨论

     

此属性报告视频的干净光圈   方形像素。因此,报告的尺寸考虑在内   变形内容和光圈模式。

     

电影的自然尺寸可能会在此期间发生变化   回放。这通常发生在流式传输的比特率时   内容更改或播放在仅音频和a之间切换时   音频和视频的结合。

状况 适用于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);