我正在尝试使用以下代码嵌入视频,以避免启动youtube应用并留在我的应用中:
-(void)embedYouTube:(NSString*)url frame:(CGRect)frame {
NSString* embedHTML = @"<iframe type=\"text/html\" width=\"64\" height=\"39\" src=\"http://www.youtube.com/embed/j8Bc7eRTdWY\" frameborder=\"0\"></iframe>";
if(videoView == nil) {
videoView = [[UIWebView alloc] initWithFrame:frame];
[movieDescView addSubview:videoView];
}
[videoView loadHTMLString:embedHTML baseURL:nil];
}
问题是,当我点击播放图标时,它打开youtube网站,我的uiwebview要求安装一些网络应用程序。我想阻止此网络应用弹出以全屏显示或启动视频。实际上,任何在不退出我的应用程序的情况下显示YouTube视频的解决方案都可以。
答案 0 :(得分:4)
您可以使用它来加载电影(不需要生成html字符串):
movieView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 140, 100)];
movieView.delegate = self;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youtube.com/embed/-h4zTEwgCpQ"]];
[movieView loadRequest:request];
[self.view addSubview:movieView];
#pragma mark -
#pragma mark UIWebViewDelegate
//To check if youtube try to show the overview page of m.youtube.com or the current movie
//if the user click on the youtube logo this method stop loading the mobile page
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *urlRequest = [request URL];
if ([[urlRequest absoluteString] isEqualToString:url]) {
return YES;
}
return NO;
}
您需要寻找的一件事就是使用“嵌入”链接。
答案 1 :(得分:2)
UIWebView *wbView = (UIWebView *)[self.view viewWithTag:1];
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, 64.0, 64.0];
[wbView loadHTMLString:html baseURL:nil];
"url" is your video url
答案 2 :(得分:0)
如果您尝试播放视频,则不要使用嵌入。只需使用普通的视频网址,即可在iPhone的YouTube应用程序而不是网络中打开。如果它在网页上打开,它会要求安装它的网络应用程序。
您需要将HTML更改为:
<a href="http://www.youtube.com/watch?v=j8Bc7eRTdWY">Play Video</a>
或者直接将其发布到本机应用使用网址:
http://www.youtube.com/watch?v=j8Bc7eRTdWY
更多参考资料:
答案 3 :(得分:0)
提示:
stringUrl = [stringUrl stringByReplacingOccurrencesOfString:@"/watch?v=" withString:@"/embed/"];
其中stringUrl
是youtube的视频链接(例如Youtube)
答案 4 :(得分:0)
我花了很多时间浏览库和旧的代码片段;这个图书馆对我有用: