我在调整MPMoviePlayerController实例时遇到了一些问题。我想让它根据iPad方向旋转。通常,它的工作原理。然而,有时会发生一些奇怪的事情,然后在我重新启动程序之前就已经搞砸了。
这是我的初始化代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Drew 320x240" ofType:@"mp4" inDirectory:nil];
myMPC = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]];
[[myMPC view] setFrame: CGRectMake(0, 0, 597, 448)];
myMPC.view.transform = CGAffineTransformMakeRotation(SP_D2R(-90));
myMPC.view.center = CGPointMake(364, (850 / 2) + 168);
这是我的导演代码:
-(void)orientationDetected:(UIEvent *)event{
if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft) {
if (myMPC) {
myMPC.view.transform = CGAffineTransformMakeRotation(SP_D2R(90));
myMPC.view.center = CGPointMake(405, (850 / 2));
}
} else if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) {
if (myMPC) {
myMPC.view.transform = CGAffineTransformMakeRotation(SP_D2R(-90));
myMPC.view.center = CGPointMake(364, (850 / 2) + 174);
}
}
}
以下是一些截图。前两个是它们应该是怎样的(一个是主页按钮,另一个是主页按钮),第三个是搞砸了。他们在这里:
正如你所看到的那样,这个男孩的视频移动到了位置,并留下了原本应该存在的黑色(虽然黑色矩形不是它应该在哪里 - 它应该更左边的位置那个例子)。一旦发生这种情况,所有后续设备轮换都会导致此问题(直到程序重新启动)。
这不是特定于模拟器的问题,因为这发生在实际的iPad上。再次,有时它旋转正常。有什么东西我不知道/有没有人知道为什么会发生这种情况/有没有人知道如何防止这种情况?
我很感激帮助。
谢谢你, 伊利亚安德
编辑:添加了初始化代码,现在嵌入了图片。
答案 0 :(得分:1)
第一次使用MPMoviePlayerController
时,我遇到了类似的问题。这个方向对我来说不起作用。
我找到的是:MPMoviePlayerViewController
(它包含MPMoviePlayerControlle
)
使用这个新课程,我没有更多的方向问题。我也可以通过继承它来在shouldAutorotateToInterfaceOrientation
中定义自己的方向。 (感觉像魔术:P)
请记住MPMoviePlayerViewController
类是由[self presentMoviePlayerViewControllerAnimated:(MPMoviePlayerViewController)]
现在就按照你现在的方式管理方向非常繁琐且容易出错。
使用框架中的内置类可以更轻松地完成。
HTH
答案 1 :(得分:0)
我认为设置视频旋转的锚点可能会解决您的问题。
尝试按如下方式初始化:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Drew 320x240" ofType:@"mp4" inDirectory:nil];
myMPC = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path]];
[[myMPC view] setFrame: CGRectMake(0, 0, 597, 448)];
[[myMPC view].layer setAnchorPoint:CGPointMake( 0.5, 0.5 )]; // center of your view
视频现在应围绕其中心旋转。
中找到更多详情