4

当我尝试在 a 中启动要播放的视频(通过 YouTube)时UIWebView,视频会打开,然后调试器会说:

[MPAVController] Autoplay: Enabling autoplay
[MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)

这是一个类似的问题:MPMoviePlayerController 几秒钟后停止播放

我唯一的问题是使用 a UIWebView,我无法设置MPMoviePlayerControllerto prepareToPlay。至少据我所知不是。如果有人可以帮助解决这个问题,那就太棒了!

4

2 回答 2

13

我在 iOS 6 中也遇到过类似的问题。这背后的原因是,当在 iOS6 版本以外的版本中播放 YouTube 视频时,没有调用viewWillDisappear方法。但在 iOS6 中,每次播放 YouTube 视频时都会调用此方法。这可能是操作系统级别的错误,但我不确定。

但是,我已经修复了它,步骤如下。

添加全屏进入和退出通知,使用布尔属性,并相应地更新它。

// Notification when the player moves to full screen

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youTubeVideofullScreen:) name:@"UIMoviePlayerControllerDidEnterFullscreenNotification" object:nil];

// Notification when the player exit from full screen.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youTubeVideoExit:) name:@"UIMoviePlayerControllerDidExitFullscreenNotification" object:nil];
 - (void)youTubeVideofullScreen:(id)sender {
      //Update flag.
      isFullscreen = TRUE;
 }

 - (void)youTubeVideoExit:(id)sender {
        //Update flag.
        isFullscreen = FALSE;
  }

 - (void)viewWillDisappear:(BOOL)animated {
    //Now you can use that flag and avoid the code execution which is interrupting the video
    
      if(!isFullscreen) {
       [super viewWillDisappear:animated]; 

       }
  }

希望对您有所帮助。

于 2012-10-11T06:08:10.430 回答
4

我刚刚在我们的一个应用程序中遇到了同样的问题。原来我们将 .html 中UIWebView的 HTML 设置为空字符串-(void)viewWillDisappear。显然,现在在 iOS 6 中显示来自 的全屏视频时会调用此方法UIWebView,因此这可能就是您的问题所在。

于 2012-10-10T18:42:21.040 回答