我有一个和AVAsset一起用来播放视频的AVPlayer。
我添加了一些控件,如播放、停止、前进等。
但是我怎么才能用一个按钮切换到全屏呢?我不想使用MPMoviePlayerController,因为我不知道如何同步开始时间。但是如何才能简单地“扩展”当前的playerView来使用fullScreen呢?
谢谢。
发布于 2016-05-12 14:27:07
如果AvPlayer与view或window 具有相同的框架,则为
- To make AVPlayer as full screen you have to give total frame of window to AVPlayer layer than rotate a view by pi/2 .
如果AvPlayer具有较少的视图框架或window,则为window
- Create on protocal to parent to change frame of player to window frame when user presses landscape button
- Rotate a view by 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);
}
}发布于 2015-03-22 20:23:57
假设您有一个具有UIView全屏的UIViewController
您需要使用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)发布于 2016-11-09 17:02:59
我也有同样的问题。我在代码中添加了以下几行代码:
[playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];它现在将全屏显示。
https://stackoverflow.com/questions/14424791
复制相似问题