我遇到的问题似乎无法理解。
我的代码在Xcode 5中与iOS 7完美配合:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
CGFloat width = self.view.frame.size.width;
CGFloat height = self.view.frame.size.height;
UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, width, height)];
NSString* embedHTML = @"\
<html><head><meta name=\"viewport\" content=\"width=device-width; initial-scale=1.0; user-scalable=0;\"/>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: black;\
}\
</style>\
</head><body style=\"margin:0;\">\
<embed id=\"yt\" src=\"https://www.youtube.com/v/M7lc1UVf-VE?hd=1\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSString *html = [NSString stringWithFormat:embedHTML, width, height];
[webview loadHTMLString:html baseURL:nil];
[self.view addSubview:webview];
}
当我在iOS 8的Xcode 6中构建相同的代码时,视频会显示在webview中,但是很小。
有人能解释一下这里发生了什么,以及我如何克服这个问题?
答案 0 :(得分:5)
我遇到了同样的问题,我使用这个解决方案解决了
https://developers.google.com/youtube/v3/guides/ios_youtube_helper
也在YTPlayerView.m(~line:610)中尝试这个改变:
[playerParams setValue:[NSString stringWithFormat: @"%0.00f", self.frame.size.height] forKey:@"height"];
// [playerParams setValue:@"100%" forKey:@"height"];
[playerParams setValue:[NSString stringWithFormat: @"%0.00f", self.frame.size.width] forKey:@"width"];
// [playerParams setValue:@"100%" forKey:@"width"];
希望这个帮助
答案 1 :(得分:3)
我在这方面工作了一段时间,并找到了一个可以满足我的目的的解决方案。在我的情况下发生的是由于某种原因iFrame正在使用一些需要丢弃的填充。
另外需要注意的是,如果您将youtube.com作为基本网址加入,它的加载速度会更快。
在故事板中创建一个UIWebView并将@property连接到它,然后在下面引用。
CGFloat height = self.webView.frame.size.height;
CGFloat width = self.webView.frame.size.width;
NSString *youTubeVideoCode = @"dQw4w9WgXcQ";
NSString *embedHTML = @"<iframe width=\"%f\" height=\"%f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\" style=\"margin:-8px;padding:0;\" allowfullscreen></iframe>";
NSString *html = [NSString stringWithFormat:embedHTML, width, height, youTubeVideoCode];
self.webView.scrollView.bounces = NO;
[self.webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];