按ID加载单个视频的YouTube GData Feed [英] Load YouTube GData feed for a single video by id
问题描述
我正在尝试在UIWebView中播放YouTube视频,而不是离开我的应用程序。
I am trying to play a youtube video in a UIWebView instead of leaving my application.
Google认为很容易让人感到轻松 - http://apiblog.youtube.com/2009/02/youtube-apis-iphone- cool-mobile-apps.html
Google thinks is easy peasy- http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html
所以我让GData框架和标题工作得很好,我在查询,加载用户的视频输入等方面没有问题。
So I have the GData framework and headers working nicely, and I have no problem doing queries, loading user's video feeds etc.
但我似乎无法加载特定视频的Feed。 我知道我希望提前输入的视频的ID 。如何加载特定视频的Feed?
But what I can't seem to do is load a specific video's feed. I know the ids of the videos that I want the feeds for in advance. How do i load a specific video's feed?
然后我将按照谷歌的说明进行操作:
I'm then going to follow google's instruction :
Grab the video url from the media tag in the API response with the application/x-shockwave-flash type.
然后像这样嵌入:
// webView is a UIWebView, either initialized programmatically or loaded as part of a xib.
NSString *htmlString = @"<html><head>
<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head>
<body style=\"background:#F00;margin-top:0px;margin-left:0px\">
<div><object width=\"212\" height=\"172\">
<param name=\"movie\" value=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"></param>
<param name=\"wmode\" value=\"transparent\"></param>
<embed src=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"
type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"212\" height=\"172\"></embed>
</object></div></body></html>";
[webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.your-url.com"]];
我们非常感谢任何帮助!
Any help would be much appreciated!
推荐答案
如果有YouTube视频条目,您可以通过以下方式获取每个条目的ID和Flash网址:
Given a feed of YouTube video entries, you can get the IDs and Flash URLs from each entry this way:
for (GDataEntryYouTubeVideo *videoEntry in [feed entries]) {
GDataYouTubeMediaGroup *mediaGroup = [videoEntry mediaGroup];
NSString *videoID = [mediaGroup videoID];
NSArray *mediaContents = [mediaGroup mediaContents];
GDataMediaContent *flashContent =
[GDataUtilities firstObjectFromArray:mediaContents
withValue:@"application/x-shockwave-flash"
forKeyPath:@"type"];
NSLog(@"video ID = %@, flash content URL = %@",
videoID, [flashContent URLString]);
}
这篇关于按ID加载单个视频的YouTube GData Feed的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!