我正尝试使用MPMoviePlayerController传输一些youTube视频,但我遇到了一些问题。我使用的代码非常简单,我可以通过将URL传递给initWithContentURL来播放.m4v视频。当我启动电影播放器时,播放器出现,但在大约20秒后才会消失。当我在模拟器中尝试它时,我得到一个警告视图,表示服务器配置不正确。我需要通过网址传递一个参数来从Google获取特定类型的视频订阅源吗?
NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer play];
我也尝试了以下网址的 http://www.youtube.com/watch?v=HGd9qAfpZio
我也看到了&format = 1的参数,并试图将这两个字符串添加到结尾,但没有运气。
发布于 2018-04-18 17:01:28
在您自己的应用程序中进行YouTube视频播放的唯一方法是UIWebView
使用Youtube中的嵌入标记为您想要播放的电影创建UIWebView's
内容。UIWebView
将检测到嵌入对象是Youtube链接,并且Web视图的内容将成为视频的YouTube预览。当用户点击预览时,视频将显示在MPMoviePlayerController中。这是Muxecoid提供的链接(如何在应用程序中播放YouTube视频)中描述的技术,这是(据我所知)在应用程序中播放YouTube视频的唯一方法。你仍然可以通过传递youtube URL来启动Youtube应用程序-[UIApplication openURL:]
,但是当然这会关闭你自己的应用程序,这通常是不可取的。
不幸的是,没有办法直接播放YouTube视频,MPMoviePlayerController
因为YouTube不会直接链接到视频文件。
发布于 2018-04-18 17:48:01
如果使用的是Code:
- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {
NSString* embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];
if(videoView == nil) {
videoView = [[UIWebView alloc] initWithFrame:frame];
[self.view addSubview:videoView];
}
[videoView loadHTMLString:html baseURL:nil];
}
资源:
确保你在设备上而不是在模拟器上进行测试。由于模拟器将始终以蓝框显示问号(它没有快速播放器)。
https://stackoverflow.com/questions/-100003923
复制相似问题