【问题标题】:MPMoviePlayerViewController Dismiss Without playingMPMoviePlayerViewController Dismiss 不播放
【发布时间】:2015-06-23 14:24:13
【问题描述】:

问题视频可见: http://app.bowerchat.com/images/118_1435046739658.mp4

MPMoviePlayerViewController 立即关闭而不播放。 可能是什么原因?有些视频可以很好地加载并播放。

如何查看视频是否可以播放? 我试过了

NSLog(@"%lu",(unsigned long)self.mpController.moviePlayer.loadState);
        NSLog(@"%d",self.mpController.moviePlayer == nil);

结果总是 0 - 0

我的代码来播放视频

 self.mpController = [[MPMoviePlayerViewController alloc] initWithContentURL:moveUrl];
        [self.mpController.moviePlayer prepareToPlay];
        NSLog(@"%lu",(unsigned long)self.mpController.moviePlayer.loadState);
        NSLog(@"%d",self.mpController.moviePlayer == nil);

        [parent presentMoviePlayerViewControllerAnimated:self.mpController];

【问题讨论】:

    标签: ios video mpmovieplayercontroller mpmovieplayer


    【解决方案1】:

    原因可能是扩展名为 *.mp4 的电影实际上是不同类型的。

    还可以尝试添加以下内容:

    self.mpController.moviePlayer.shouldAutoplay = YES;
    [self.mpController.moviePlayer play];
    

    【讨论】:

      【解决方案2】:

      试试这个 sn-p:

      -(void)setupMovie
      {
          NSURL *movieURL = [NSURL fileURLWithPath:movieURL];
      
          self.mpController =  [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
          self. mpController.scalingMode = MPMovieScalingModeAspectFill;
          self. mpController.controlStyle = MPMovieControlStyleNone;
          self.mpController.view.frame = self.view.frame;
      
          [[NSNotificationCenter defaultCenter] addObserver:self
                                                   selector:@selector(moviePlayBackDidFinish:)
                                                       name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
      
          [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(moviePlayerPlaybackStateDidChange:)  name:MPMediaPlaybackIsPreparedToPlayDidChangeNotification  object:nil];
      
          [self.view addSubview:self.mpController.view];
          [self.mpController prepareToPlay];
      }
      
      
      - (void)moviePlayBackDidFinish:(MPMoviePlayerController *)player
      {
          [self.mpController.view removeFromSuperview];
      }
      
      - (void)moviePlayerPlaybackStateDidChange:(NSNotification*)notification
      {
          if (self. mpController.isPreparedToPlay) {
              [self. mpController play];
          }
      }
      

      并确保movieURL 正确,并且此提供的网址存在视频

      【讨论】:

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