3

我有一个与 AVAsset 一起使用的 AVPlayer 来播放视频。

我添加了一些控件,例如播放、停止、前进等...

但是如何使用按钮切换到全屏?我不想使用 MPMoviePlayerController 因为我不知道如何同步开始时间。但是我怎样才能简单地“扩展”当前的 playerView 以使用 fullScreen?

谢谢。

4

3 回答 3

3
  1. 如果 AvPlayer 与视图或窗口具有相同的框架

    • 要将 AVPlayer 设为全屏,您必须将窗口的总帧提供给 AVPlayer 层,而不是通过 pi/2 旋转视图。
  2. 如果 AvPlayer 的视图或窗口框架较少

    • 当用户按下横向按钮时,在父协议上创建以将播放器的框架更改为窗口框架

    • 以 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);
    }
}
于 2016-05-12T06:27:06.637 回答
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)
于 2015-03-22T12:23:56.537 回答
1

我遇到过同样的问题。我在我的代码中添加了以下几行,

 [playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];

它现在将显示全屏。

于 2016-11-09T09:02:59.237 回答