objective-c - MPMoviePlayerController 不会设置为我声明的大小框架

标签 objective-c xcode uiview resize mpmovieplayercontroller

我目前正在尝试为存储在自定义类 (VideoEngine) 中的 MPMoviePlayerController 设置框架。电影是使用 URL 设置的,该 URL 由用户在应用程序期间捕获的视频提供。 (我希望这一点有意义)。然后我按如下方式设置 MPMoviePlayerControllers View :

    - (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //[self.image setImage:[info objectForKey:UIImagePickerControllerMediaURL]];
    videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    [parentView dismissModalViewControllerAnimated:NO];

    VideoEngine *ve = [[VideoEngine alloc] initWithCallbackName:@"movieFinishedPlaying"];
    [ve loadMovieURL:videoURL];
    [ve.player.view setFrame:CGRectMake((0 + self.frame.size.width * 0.2), self.frame.size.height * 0.3, self.frame.size.width * 0.6, self.frame.size.width * 0.4)];

    CGRect frame = ve.player.view.frame;

    self.video = ve;
    [self addSubview:self.video.player.view];
    [ve release];
}

首先,我想指出,我知道高度值是使用宽度设置的,但那是为了让它更宽而不是更高(目前不关心这样做的方式)。如您所见,我有一个指向 View 框架的指针,因此我可以检查值(它不会让我直接使用 po 访问)。以下是值的屏幕截图:

Frame Output

如您所见(差不多),框架为 192 宽 x 128 高,这很好。但是,当我在手机中查看时,它看起来如下:

Phone Screenshot

手机已禁用所有旋转功能,因此它永远不会因旋转而尝试以奇怪的方式调整大小。我对此感到非常困惑,所以如果有人有任何想法,我将不胜感激。

最佳答案

好吧,事实证明 MPMovieScaling 模式设置为纵横比适合,我不知道我是怎么忽略了这一点的,但万一人们遇到同样的问题,你只需要在某个地方设置它:

[mpMoviePlayerControllerInstance setScalingMode:MPMovieScalingModeFill];

关于objective-c - MPMoviePlayerController 不会设置为我声明的大小框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12035393/

相关文章:

ios - 滚动到 PDF 文档中的特定页面

ios - 是否可以在 Storyboard 中定义 "generic"unwind segue?

ios - 如何将 Linphone 集成到 IOS Swift - 开发 iOS 7/8

ios - 在 iOS 上映射 UIView

ios - 如何通过按图像导航到另一个 UIView Controller (之前在 Storyboard 中创建)

ios - 根据内容自动设置自定义 UIView 的高度?

objective-c - 从相机胶卷创建一个 UIImages 数组

ios - 如何将项目添加到 UITableView?

ios - iOS 6.1 中的闪烁屏幕问题

objective-c - XCode 4.2 编译器错误