我有一个AVAlayer与AVAsset一起使用来播放视频。
我添加了一些控件,如播放,停止,转发等......
但是如何使用按钮切换到全屏?我不想使用MPMoviePlayerController,因为我不知道如何同步starttime。但是,我怎样才能简单地“扩展”当前的playerView以使用fullScreen?
感谢。
答案 0 :(得分:3)
如果AvPlayer与视图或窗口具有相同的框架
如果AvPlayer拥有较少的视图或窗口
当用户按下横向按钮时,在protocal上创建父级以将玩家框架更改为窗口框架
通过pi / 2旋转视图。
创建一个方法并使用下面的代码。
-(void)enlarge
{
if(!_isLandscapeMode)
{
[self.landscapeDelegate changeFrameForLandscapeMode:YES];
[_landscapeMode setImage:[UIImage imageNamed:IMAGE_NAME_PORTRAIT_MODE] forState:UIControlStateNormal];
_isLandscapeMode=YES;
self.transform = CGAffineTransformMakeRotation(M_PI_2);
}
else
{
[self.landscapeDelegate changeFrameForLandscapeMode:NO];
_isLandscapeMode=NO;
[_landscapeMode setImage:[UIImage imageNamed:IMAGE_NAME_LANDSCAPE_MODE] forState:UIControlStateNormal];
self.transform = CGAffineTransformMakeRotation(0);
}
}
答案 1 :(得分:2)
假设您有一个UIViewController
,其中有一个UIView全屏
您需要使用AVPlayerLayer
var player = AVPlayer(playerItem: AVPlayerItem(asset: asset))
var layer = AVPlayerLayer(player: player)
self.view.layer.addSublayer(layer)
layer.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)
答案 2 :(得分:1)
我有同样的问题。我在代码中添加了以下行,
[playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
现在会全屏显示。