Youtube - iPhone - 显示视频的UIWebView

时间:2011-01-18 22:01:03

标签: iphone sdk uiwebview youtube

我的应用程序中有一个脚本,它在UIView的一部分中加载一个Youtube链接,该链接由我的服务器提供(mySQL /使用php),并且从中加载...这个脚本可以正常工作。 ....但是......

以下是我现在所拥有的内容,我希望以编程方式删除部分(它给出维度并可能用UIWebView替换它),这样我就可以即兴使用IB,这将有助于我的应用程序启动时,一个快速动画发生,然后我想在viewDidLoad完成后加载和显示这个youtube链接。

.h文件:

- (void)embedYouTube:(NSString *)urlString frame:(CGRect)frame;

.m文件

//view did load function...

[self embedYouTube:youtubestring frame:CGRectMake(69,72,184,138)];

//after the view did load is closed I have..

- (void)embedYouTube:(NSString *)urlString 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, urlString, frame.size.width, frame.size.height];
UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.view addSubview:videoView];
[videoView release];
}

任何帮助将不胜感激!!感谢

3 个答案:

答案 0 :(得分:7)

这可以使用在IB中创建的UIWebView:

.h文件:

@property (nonatomic, retain) IBOutlet UIWebView *infoVideo1;

-(void)embedYouTubeInWebView:(NSString*)url theWebView: (UIWebView *)aWebView;

.m文件:

viewDidLoad中的

[self embedYouTubeInWebView:youTubeString theWebView:infoVideo1];

方法:

- (void)embedYouTubeInWebView:(NSString*)url theWebView:(UIWebView *)aWebView {     

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, aWebView.frame.size.width, aWebView.frame.size.height]; 

[aWebView loadHTMLString:html baseURL:nil];
}

您甚至可以在一个屏幕上拥有多个webView。希望这会有所帮助。

答案 1 :(得分:1)

Aehm,iPhone没有Flash。它从来没有,也可能永远不会有。在iPhone上打开YouTube视频的唯一方法是通过youtube应用程序,以另一种格式播放它们。这方面的一个例子是     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.youtube.com /v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM"]];
您可以在此处找到更多详细信息:http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html

答案 2 :(得分:0)

iOS有一个safari插件,可以播放youtube视频,如果它们嵌入为flash。

我将这个uiwebview类别放在一起,为您提供视频,无需离开应用程序或教程: - )

https://github.com/enigmaticflare/UIWebView-YouTube--iOS-Category--ARC-compliant-code