Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fullscreen avplayer全屏_Fullscreen_Avplayer_Avasset - Fatal编程技术网

Fullscreen avplayer全屏

Fullscreen avplayer全屏,fullscreen,avplayer,avasset,Fullscreen,Avplayer,Avasset,我有一个AVPlayer用于播放视频 我添加了一些控件,如播放、停止、前进等 但我如何用按钮切换到全屏?我不想使用MPMoviePlayerController,因为我不知道如何同步开始时间。但我如何简单地“扩展”当前playerView以使用全屏 谢谢。假设您有一个具有UIView全屏的UIViewController 您需要使用AVPlayerLayer var player = AVPlayer(playerItem: AVPlayerItem(asset: asset)) var lay

我有一个AVPlayer用于播放视频

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

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


谢谢。

假设您有一个具有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)
  • 如果AvPlayer与视图或窗口具有相同的帧

    • 要使AVPlayer成为全屏,您必须为AVPlayer层提供总的窗口帧,而不是通过pi/2旋转视图
  • 如果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);
        }
    }
    

    我也有同样的问题。我在代码中添加了以下行

     [playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
    

    现在它将全屏显示。

    您能解决这个问题吗?如果当前视图尚未全屏显示,则以下答案无效