我正在尝试使用以下代码在iOS UIWebView中播放Vimeo视频:
NSString *urlString = [NSString stringWithFormat:@"http://player.vimeo.com/video/%@?title=0&byline=0&portrait=0", video.serviceId];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]];
在iPhone 4上工作正常但在iPhone 3GS上工作有时很好,但有时候Vimeo播放器的响应如下:
有人能告诉我如何在iOS上在所有设备上播放Vimeo视频吗?
EDIT1:
我测试了用户代理信息,并且两个设备(iPhone 4和iPhone 3GS)都在发送相同的用户代理:
Mozilla / 5.0(iPhone; CPU iPhone OS 5_0_1,如Mac OS X)AppleWebKit / 534.46(KHTML,如Gecko)Mobile / 9A405
此外,我尝试在iPhone 3GS上播放Safari浏览器中的视频,这会产生与UIWebView相同的错误。
答案 0 :(得分:1)
3gs支持的H.264格式很少。这表明可能有H.264格式的视频可能无法在3gs上播放,并抛出该特定错误。 (参见,http://www.clone2go.com/tutorials/convert-dvd-movie-to-iphone-3gs.php和http://www.niallkennedy.com/blog/2010/07/h264-video.html)
但为什么它有时候会起Vimeo的作用,有时候不起作用?不知道。我的猜测是他们想要限制他们的内容 - 甚至改变H.264格式 - 取决于带宽。因此,我会进行一些测试,以确切了解3G和4上接收的H.264格式,并在此处发布结果,如果有任何有趣的话。
答案 1 :(得分:1)
从UIWebView发出的Web请求不会在用户代理字符串中包含单词“Safari”,因此,Vimeo可能无法确定哪个移动浏览器并检索正确的视频格式。
您可以尝试用Mobile Safari的一个替换UIWebView的用户代理:here您会发现如何更改它(或只是谷歌它)。如果您愿意,还可以阅读this article非常有趣的UIWebView和Mobile Safari中的用户代理如何工作。