我想在我的iOS应用程序中播放YouTube视频,我看到有许多选项,例如嵌入视频和UIWebview
中的所有视频。但我希望它像玩家一样。当我点击按钮然后它打开新的页面和视频应播放。
我甚至在谷歌搜索然后我听说过这个控件
“XCDYouTubeVideoPlayerViewController-master”当我将它集成到我的项目时
像
在我的youtube.m
文件
在viewdidAppear()
我添加了此代码
XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];
然后打开一个视频播放器,在几秒钟内关闭视频播放器。它没有播放任何内容。
当我试图嵌入视频时
webView.frame=CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height);
NSLog(@"%@",sharedManager.trailerLink);
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:sharedManager.trailerLink]]];
我正在获取像youtube移动网站的窗口,请检查图像。我只想在屏幕上显示一个视频。 请帮帮我
答案 0 :(得分:1)
无法使用与MPMoviePlayer
- 对象相同的控件加载YouTube视频,但您可以使用YouTubes iFrame-API
要在UIWebview中加载视频,请使用此帮助程序:
- (NSString*)youTubeHTMLFromURL:(NSURL*)url
{
NSError *error = NULL;
NSRegularExpression *regex =
[NSRegularExpression regularExpressionWithPattern:@"(?<=v(=|/))([-a-zA-Z0-9_]+)|(?<=youtu.be/)([-a-zA-Z0-9_]+)"
options:NSRegularExpressionCaseInsensitive
error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:url
options:0
range:NSMakeRange(0, [url length])];
if (match) {
NSRange videoIDRange = [match rangeAtIndex:0];
NSString *videoId = [url substringWithRange:videoIDRange];
NSString *html = [NSString stringWithFormat:@"<!DOCTYPE html>\
<html>\
<head>\
<style type='text/css' media='screen'>\
body, p{\
margin: 0px;\
}\
#player {\
width: 100%%;\
}\
</style>\
</head>\
<body><div id='player'></div>\
<script type='text/javascript'>\
var tag = document.createElement('script');\
tag.src = 'https://www.youtube.com/iframe_api';\
var firstScriptTag = document.getElementsByTagName('script')[0];\
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\
\
var player;\
function onYouTubeIframeAPIReady() {\
player = new YT.Player('player', {\
height: '390',\
width: '640',\
videoId: '%@',\
events: {\
'onReady': onPlayerReady,\
}\
});\
}\
\
function onPlayerReady(event) {\
event.target.playVideo();\
}\
\
</script>\
</body>\
</html>", videoId];
return html;
}
return nil;
}
答案 1 :(得分:0)
此库符合您的目标,并且易于使用测试HCYoutubeParser, 我希望它会有用!