【问题标题】:AVPlayer not showing FullScreenAVPlayer 不显示全屏
【发布时间】:2016-11-03 05:00:28
【问题描述】:

我正在播放由 AVCapture 录制的视频。我将视频 URL 保存在名为 outputFileURL 的字符串中。我尝试使用 AVPlayerLayer 概念播放视频。我使用的代码是

AVPlayer *avPlayerq = [AVPlayer playerWithURL:outputFileURL];
avPlayerq.actionAtItemEnd = AVPlayerActionAtItemEndNone;
AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayerq];
videoLayer.frame= self.view.bounds;

[self.view.layer addSublayer:videoLayer];
[avPlayerq play];

但是我得到的视频不是全屏的。 谁能帮我解决?

【问题讨论】:

  • 试试这个 [playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
  • 谢谢。它工作正常。

标签: ios objective-c avplayer avplayerlayer


【解决方案1】:

我添加了以下代码,我能够获得全屏。

videoLayer.videoGravity=AVLayerVideoGravityResizeAspectFill;

希望这会有所帮助。

【讨论】:

    【解决方案2】:
    AVPlayer *player = [[AVPlayer alloc] initWithURL:url];
    AVPlayerViewController *playerViewController = [AVPlayerViewController new]; playerViewController.delegate = self; 
    playerViewController.player = player; 
    [playerViewController.player play]; 
    [self presentViewController:playerViewController animated:YES completion:nil];
    

    试试这个

    好吧,你必须使用 MPMoviePlayerController

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Video_Intro" ofType:@"mov"];
    
        moviePlayer = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]];
        moviePlayer.view.frame = ivVideoThumbnail.frame;
    
        //moviePlayer.view.top += 20; // Add to fix 20 pixel diff of moviePlayer view
    
    
        // Register this class as an observer instead.
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(movieFinishedCallback:)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:moviePlayer];
    
    
        [svIntro addSubview:moviePlayer.view];
        moviePlayer.fullscreen = true;
        [moviePlayer play];
    

    同样实现 Observer 方法

    -(void)movieFinishedCallback:(id)mPlayer
    {
        [moviePlayer.view removeFromSuperview];
    }
    

    【讨论】:

    • 我正在使用 iOS7 版本的设备。 AVPlayerViewController 不支持iOS7,支持iOS8+。
    • 我之前尝试过使用 MPMoviePlayerController。使用它时我遇到了太多问题。所以我想切换到AVPlayerLayer。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多