我已经看到这提到了网络上的一些地方,但还没有在任何地方找到答案。
我正在使用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];
}
这是我的代码
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"]];
我无法找到解决方案。
请帮助。
答案 0 :(得分:11)
是的,经过这么多的研究,我发现了以下解决方案。
MPMoviePlayerController直接无法播放youtube视频。您必须提取视频网址并将视频网址设置为MPMoviePlayerController。播放完这段视频后。
有许多API可用于提供提取的视频网址。
其中一些低于
但使用此API可能会拒绝您的应用。你应该利用你的风险。
播放YouTube视频的最佳方式是WebView。
答案 1 :(得分:3)
确定!!!问题是玩家不知道你想玩什么,
答案 2 :(得分:0)
如果我没弄错,ALMovieplayercontroller
是MPMoviePlayerController
的扩展名。
因此,请尝试将播放器的源类型设置为流式传输。
moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;