【问题标题】:Loading the same ViewController after watching MPMoviePlayerController观看 MPMoviePlayerController 后加载相同的 ViewController
【发布时间】:2017-01-11 08:45:33
【问题描述】:

我有一个 ViewController 显示有关所选节目的信息,并且 MPMoviePlayerController 的播放按钮在那里。现在,问题是当我单击播放器的全屏然后单击完成时。它应该返回到显示信息的 ViewController,但事实并非如此。但它会进入 ViewController 的 viewDidLoad 并且它根本不显示任何内容。我觉得 ViewController 的顶部有东西或类似的东西

这是我移除播放器控制器的方法

- (void)dealloc
{
self.delegate = nil;
self.activityIndicator = nil;
[self deregisterMoviePlayerNotifications];
[self.player.view removeFromSuperview];
[self removeFromSuperview];
[self stopVideo];
self.player = nil;
}

【问题讨论】:

    标签: objective-c mpmovieplayercontroller


    【解决方案1】:

    您应该使用AVPlayerViewController,因为MPMoviePlayerController 已弃用。您可以在播放按钮上使用此代码

    -(void)playButton{    
        AVPlayer *player = [[AVPlayer alloc]initWithURL:urlVideo];
        AVPlayerViewController *controller = [[AVPlayerViewController alloc]init];
        controller.player = player;
        controller.videoGravity = AVLayerVideoGravityResizeAspectFill;
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:player.currentItem];
        controller.videoGravity = AVLayerVideoGravityResizeAspect;
        [self presentViewController:controller animated:YES completion:nil];
        [player play];
    }
    
    -(void)playerItemDidReachEnd:(NSNotification*)notification{
    
        [[NSNotificationCenter defaultCenter] removeObserver:self];
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    

    注意:不要忘记添加AVFoundation.framework

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多