Загрузить канал YouTube GData для одного видео по идентификатору - PullRequest
3 голосов
/ 06 ноября 2010

Я пытаюсь воспроизвести видео на YouTube в UIWebView вместо того, чтобы выходить из приложения.

Google считает, что это просто peasy- http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html

Итак, у меня есть среда GData и рабочие заголовкихорошо, и у меня нет проблем с выполнением запросов, загрузкой видео-каналов пользователя и т. д.

Но я не могу загрузить определенную ленту видео. Мне заранее известны идентификаторы видео, для которых я хочу каналы .Как загрузить канал определенного видео?

Затем я буду следовать инструкциям Google:

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"]];

Любая помощь будет высоко ценится!

Ответы [ 2 ]

6 голосов
/ 07 ноября 2010

Учитывая поток видео-записей YouTube, вы можете получить идентификаторы и Flash-URL из каждой записи следующим образом:

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]);   
}
2 голосов
/ 30 ноября 2010

В точно такой же ситуации только что нашел ответ.Как правило, для многих больших API общие инструкции по использованию теряются при объяснении вещей более высокого уровня - это может разочаровать.К счастью, информация есть ...

http://code.google.com/apis/youtube/2.0/developers_guide_protocol_video_entries.html

Итак, мы должны иметь возможность подключить возвращенный фид ATOM к библиотеке GData и проанализировать правильный URL-адрес содержимого дляиспользуйте в коде проигрывателя в стиле 'UIWebView'.

... Гроббинс, в следующий раз правильно прочитайте вопрос!

...