嵌入 Youtube 视频显示空白屏幕
Posted
技术标签:
【中文标题】嵌入 Youtube 视频显示空白屏幕【英文标题】:Embedding Youtube video shows blank screen 【发布时间】:2012-02-15 16:02:47 【问题描述】:从事实出发:
-
我正在使用流行的代码 sn-p 创建一个对象并将其加载到 web 视图中。
我正在使用设备。
我已经测试了通过添加标签来加载webview,一切都很好。
问题是嵌入的对象显示为空白且显然不可点击,我已经搜索了几个小时,但我似乎无法理解为什么会发生这种情况。我什至创建了一个 html 文档并用我的计算机浏览器对其进行了测试,缩略图显示正常,但我无法在我的 webview 中显示它,请帮忙?
更新更多信息,通过粘贴视频的 URL,我让它以某种方式工作,但我使用的代码似乎没有产生一个“干净”的视频 URL,而是产生如下内容:https://www.youtube.com/v/pzhL7jpsiNw?version=3&f=user_uploads&app=youtube_gdata
通过反复试验,我意识到我需要这样的东西:http://www.youtube.com/watch?v=pzhL7jpsiNw
产生第一个的代码,取自我一直在浏览的各种 GDATA 教程。
GDataEntryBase *entry2 = [[feed entries] objectAtIndex:indexPath.row];
NSArray *contents = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaContents];
[self embedYouTube:[NSURL URLWithString:[[contents objectAtIndex:0] URLString]] frame:CGRectMake(0, 0, 320, 200)];
[NSURL URLWithString:[[contents objectAtIndex:0] URLString]]
生成链接的“详细”版本。
除了开始操纵我认为相当肮脏的字符串本身之外,有没有办法(我对 GDATA API 有点无能为力,没有时间深入研究它 atm)来获取所需的 URL?
【问题讨论】:
【参考方案1】:我知道您说过您不想进行字符串操作,但我个人认为通过在 ?
处拆分字符串来剥离 GET 参数并不是特别脏。
例如:
NSString *dirty = @"https://www.youtube.com/v/pzhL7jpsiNw?version=3&f=user_uploads&app=youtube_gdata";
NSString *clean = [[dirty componentsSeparatedByString:@"?"] objectAtIndex:0];
NSLog(@"%@",clean);
给你https://www.youtube.com/v/pzhL7jpsiNw。
如果需要,您可以通过在/v/
拆分来获取视频 ID。
NSString *vid = [[clean componentsSeparatedByString:@"/v/"] objectAtIndex:1];
NSString *newURL = [NSString stringWithFormat:@"http://www.youtube.com/watch?v=%@",vid];
【讨论】:
厌倦了试图找到“正确的方法”,最终改为这样做,感谢您的时间【参考方案2】:嘿,伙计们刚刚发现了一点解决办法。我已将嵌入式视频添加到
?html5=1
那么视频将呈现 HTML5 播放器而不是 Flash 播放器。
谢谢。
【讨论】:
以上是关于嵌入 Youtube 视频显示空白屏幕的主要内容,如果未能解决你的问题,请参考以下文章
YouTube 视频未在 WebView 中播放 - Android
Youtube 视频显示在冲击波播放器中,而不是 youtube 视频
YouTube 嵌入 UIWebViews 不再适用于 iOS