我正在尝试在视图中播放视频,因此我可以移动它,与其他视图一起执行布局,但我似乎无法使用MPMoviePlayerController。我在how to play video in portrait mode上看到了这个链接,但这是不可能的,因为视频源来自网络,应该可以在不同的平台上播放,而不仅仅是在iPhone上播放。
我成功地旋转了视频并进行了缩放,但它仍然包含在一个填满整个屏幕的UIWindow中。有没有办法创建一个中间UIWindow但在当前屏幕中不可见,所以你可以在那里播放视频,并可能添加子视图并将所有内容作为UIView返回,我可以将它放在任何地方?与创建CGGraphics上下文类似,在那里绘制对象并输出为图像。这也会阻止当前屏幕从纵向旋转到横向。
----- 2010/06/22 06:10 + 08:00 ---
为了回应Jasarien的回答(下图),实际上可以旋转和缩放视频。视频预加载后,它会创建另一个UIWindow实例,然后该实例成为当时的关键窗口。通过在MPMoviePlayerContentPreloadDidFinishNotification中创建回调选择器,可以应用当前键窗口的变换修改。
-(void)myMovieFinishedPreloading:(NSNotification*)aNotification {
NSArray *windows = [[UIApplication sharedApplication] windows];
UIWindow *moviePlayerWindow = nil;
if ([windows count] > 1)
{
moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
}
CGAffineTransform transform = CGAffineTransformMakeScale(0.5, 0.5);
transform = CGAffineTransformRotate(transform, -90.0f*M_PI/180.0f);
[moviePlayerWindow setTransform:transform];
}
现在我的问题是它是UIWindow的一部分,因为UIWindow是一个UIView子类,是否可以子视图这个UIView?此外,我似乎无法在预加载视频时禁用自动旋转行为。
答案 0 :(得分:0)
iPhone上的视频始终全屏播放。带有iOS 3.2的iPad具有API,可以将视频视为普通视图。
对于iPhone,如果不编写自己的视频视图,您将无法获得所需的功能。
答案 1 :(得分:0)
查看AVPlayer和AVPlayerLayer。