HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS 7 MPMoviePlayerController寻找前进按钮将视频带到结束并显示黑屏大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在iOS 7中面临MPMoviePlayerController的问题.我进入全屏,然后在寻找前进按钮(>> |)上单击(只需点一下),视频播放结束,并给出一个带有文本“加载“标题.

注册了“MPMoviePlayerPlayBACkStateDidChangeNotification”的通知.

**[[NsnotificationCenter defaultCenter] addObserver:self
                                             SELEctor:@SELEctor(moviePlayerPlayBACkStateDidChange:)
                                                 name:MPMoviePlayerPlayBACkStateDidChangeNotification
                                               object:self.player];**

只需点击一下寻找前进按钮就不会被解雇.

注册了“MPMoviePlayerPlayBACkDidFinishNotification”

**[[NsnotificationCenter defaultCenter] addObserver:self
                                             SELEctor:@SELEctor(moviePlayerPlayBACkDidFinish:)
                                                 name:MPMoviePlayerPlayBACkDidFinishNotification
                                               object:nil];**

我获得“MPMovieFinishReasonPlayBACkEnded”事件触发了单击寻找前进按钮.
任何人都知道为什么?这是苹果的错误吗?

我需要停止这种单击时显示黑色屏幕的行为,或者只是禁用单击“寻找前进”按钮,这样就不会发生任何事情.

任何人都知道如何实现这一点?

解决方法

我通过完全@L_707_8@mPMoviePlayer对象来修复此问题,将其设置为nil,将其从超级视图中删除,并使用原始视频Url重新添加.代码如下:
- (void)addPlayerForUrl:(NSURL *)url {
  self.player = [[MPMoviePlayerController alloc] initWithContentURL:url];
  self.player.view.frame = self.videoView.bounds;
  self.player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  self.player.controlStyle = MPMovieControlStyleDefault;
  [self.videoView insertSubview:self.player.view aTindex:0];

  [[NsnotificationCenter defaultCenter] addObserver:self
                                           SELEctor:@SELEctor(moviePlayerLoadStateDidChangedNotification:)
                                               name:MPMoviePlayerReadyForDisplayDidChangeNotification
                                             object:self.player];

  [[NsnotificationCenter defaultCenter] addObserver:self
                                           SELEctor:@SELEctor(moviePlayerPlayBACkStateDidChangeNotification:)
                                               name:MPMoviePlayerPlayBACkStateDidChangeNotification
                                             object:self.player];
}


#pragma mark - Notifications

- (void)moviePlayerLoadStateDidChangedNotification:(Nsnotification *)notification {
  self.isVideoPreloaded = YES;
  self.videoPlayButton.hidden = YES;
  self.photoImageView.hidden = YES;
  self.videoLoadingImageView.hidden = YES;
}
- (void)moviePlayerPlayBACkStateDidChangeNotification:(Nsnotification *)notification {
      NSURL *url = self.player.contentURL;
      switch (self.player.playBACkStatE) {
        case MPMoviePlayBACkStateSeekingBACkWARD:
        case MPMoviePlayBACkStateSeekingForWARD:
          break;
        case MPMoviePlayBACkStatePlaying:
          self.videoPlayButton.hidden = YES;

          if (!self.isVideoPreloaded) {
            self.videoLoadingImageView.hidden = NO;
            [self.videoLoadingImageView startAnimaTing];
          } else {
            self.videoLoadingImageView.hidden = YES;
          }
          break;
        case MPMoviePlayBACkStatePaused:
        case MPMoviePlayBACkStateStopped:
          self.videoPlayButton.hidden = NO;
          self.videoLoadingImageView.hidden = YES;
          [self.player endSeeking];
          [self.player.view removeFromSuperview];
          [self.player setFullscreen:NO];
          self.player = nil;
          [self addPlayerForUrl:url];
          break;
        default:
          break;
      }
    }

注意我如何保持NSURL,就在moviePlayerPlayBACkStateDidChangeNotification中的switch语句之前.这样,我可以重新初始化并重新@L_647_10@mPMoviePlayer对象.

Btw,我的mpmovieplayer是在tableviewCell,如果你想知道.希望这有帮助,让我知道如果你有问题.祝你好运!

大佬总结

以上是大佬教程为你收集整理的iOS 7 MPMoviePlayerController寻找前进按钮将视频带到结束并显示黑屏全部内容,希望文章能够帮你解决iOS 7 MPMoviePlayerController寻找前进按钮将视频带到结束并显示黑屏所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。