播放youtube视频iOS 7时MPMoviePlayerController错误_itemFailedToPlayToEnd

Sun*_*hah 12 youtube objective-c mpmovieplayercontroller ios ios7

我已经看到这提到了网络上的一些地方,但还没有在任何地方找到答案.

我正在使用ALMovieplayercontroller库.一切正常,但当我试图播放Youtube视频时,它给了我错误.

_itemFailedToPlayToEnd:{kind = 1; new = 2; old = 0; }

编辑

- (void)setContentURL:(NSURL *)contentURL {

    self.movieSourceType = MPMovieSourceTypeStreaming;
    [super setContentURL:contentURL];
    [[NSNotificationCenter defaultCenter] postNotificationName:ALMoviePlayerContentURLDidChangeNotification object:nil];
    [self play];
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码

ALMoviePlayerControls *movieControls = [[ALMoviePlayerControls alloc] initWithMoviePlayer:self.moviePlayer style:ALMoviePlayerControlsStyleDefault];
//[movieControls setAdjustsFullscreenImage:NO];
[movieControls setBarColor:[UIColor colorWithRed:195/255.0 green:29/255.0 blue:29/255.0 alpha:0.5]];
[movieControls setTimeRemainingDecrements:YES];

//assign controls
[self.moviePlayer setControls:movieControls];
[self.view addSubview:self.moviePlayer.view];
self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

//THEN set contentURL
[self.moviePlayer setContentURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=NaosmAGx8NM"]];
Run Code Online (Sandbox Code Playgroud)

我无法找到解决方案.

请帮忙.

Sun*_*hah 11

经过这么多的研究,我找到了以下解决方案.

MPMoviePlayerController直接不会播放youtube视频.您必须提取视频URL并将视频URL设置为MPMoviePlayerController.播放完这段视频后.

有许多API可用于提供提取的视频URL.

其中一些在下面

XCDYouTubeKit

HCYoutubeParser

但是使用此API可能会拒绝您的应用程序.你应该用你的风险.

播放youtube视频的最佳方式是WebView.