2010-10-13 79 views
2

有一种官方的方式来做到这一点,从YouTube的人。2010年7月后,您如何在iPhone上播放YouTube视频?

(链接到官方YT方式 - 注:现在 破,但YT尚未(打扰)正确此页: http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html

在2010年7月,他们故意删除了 - 它不再有效(我有一个应用程序在更改之前运行正常,现在不使用YT自己的代码)。

有一个“新”的方式,YouTube的人描述为“实验性” - 但它只是部分的工作。如果你以前可以将YT视频放到你的iPhone GUI中,现在你不能 - 他们“被要求”给予他们自己的整个屏幕。

(链接到官方YT “新” 的方式: http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html

(链接到官方YT线程,与结束 “它可能工作......最终”: http://code.google.com/apis/youtube/forum/discussion.html?place=topic%2Fyoutube-api-gdata%2FtMYvulpGUow%2Fdiscussion

更糟的是,YouTube工程师并没有提供任何用户反馈;当用户点击一个按钮时,你必须等待YT服务器处理几个Web查找(如果你看看你的控制台日志文件,你可以看到这个)。

所有用户看到的是:“这个程序似乎已经崩溃了。”

唉!有没有其他方法?什么是其他人在这里工作仍然 - 在OS 3.x + 4.x - 自最近的YT变化?

回答

0

我目前使用类似下面的代码嵌入YouTube视频到应用程序。但是,当用户点击视频(生成用户可以在web视图中点击的缩略图)时,它将全屏显示,因此可能不是您要查找的内容。

NSMutableString* urlString = [NSMutableString stringWithFormat:@"http://gdata.youtube.com/feeds/api/videos/%@?v=2&alt=jsonc", youtubeId]; 
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 
NSURLResponse* response = nil; 
NSError* error = nil; 
NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
// Extract JSON from data into an NSDictionary 
NSDictionary* jsonDict = /* however you want to do it */ 
// Make sure that the video hasn't been flagged as restricted, otherwise the user won't know what's going on. Later check restricted and present an error as appropriate. 
BOOL restricted = youtubeVideoRestricted(jsonDict); 

如果restrictedNO,然后我喂在网络上查看一些HTML这样的:

embedSrc = @"<object width=\"640\" height=\"385\">" 
      "<param name=\"movie\" value=\"http://www.youtube.com/v/%@\"></param>" 
      "<embed src=\"http://www.youtube.com/v/%@\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"385\"></embed>" 
      "</object>"; 
embedSrc = [NSString stringWithFormat:embedSrc, youtubeId, youtubeId]; 

我有这个在商店的应用程序,现在,工作正常。也就是说,我学会了保持视频。因此,如果youtube Feed出现问题,它会回落到视频所在的blip.tv服务中。用户没有注意到YouTube上的某些操作失败。但这超出了你的问题的范围。

+0

全屏幕部分是好的 - 这跟“老”行为,所以应用已经围绕它设计的。 – Adam 2010-10-14 00:46:39

+0

当我尝试这一点,不同的是“老”的行为,这似乎并没有允许除外“全屏”页面的任何 - 页,我得到当我尝试这个方法是一个巨大的YouTube网页,有很多滚动的,许多自定义的YouTube控件,“相关视频”,顶部带有YouTube徽标的200像素横幅等。使用OLD方法,您可以*请求*缩略图,并使其可点击。当你把它放到你的应用程序中时,你看到了什么不同吗?或者你只是“接受”你现在被迫全屏? – Adam 2010-10-14 00:49:39

+0

在网络视图中,显示的是一个缩略图,其中一个播放按钮覆盖在视频的单个帧的顶部。当用户点击缩略图时,全屏youtube播放器会弹出以播放视频。这是在这个应用程序的代码被拉出来发生的事情。缩略图可点击此处。我不确定为什么你在使用上面的代码时没有看到类似的行为。 – jer 2010-10-14 02:40:39