Vimeo视频无法在iPad UIWebView上播放

时间:2012-04-27 13:40:32

标签: objective-c ios ipad uiwebview vimeo

好的,所以我已经看过人们在vimeo中遇到的大多数其他问题,我认为他们没有遇到过我所遇到的同样问题。

当我在iPhone和iPad上的Safari应用程序上打开vimeo视频时,它们都可以正常工作。

现在我已经创建了一个iPhone应用程序,它有一个UIWebView并加载一个vimeo播放器视频,也可以正常工作。

问题是如果我现在在我的iPad上安装相同的应用程序,vimeo播放器拒绝加载视频,它只是挂起并且微调器继续旋转但视频将无法加载。

然而,现在我所做的就是创建一个基本的应用程序,在UIWebView中加载vimeo播放器URL作为原生iPad应用程序,而不是调整大小的iPhone应用程序或适合iPad的“2x”。令人惊讶的是,这很好。

所以现在我很困惑......如果没有运行专为iPad设计的应用程序,为什么iPad不会播放vimeo视频?幕后是否有一些特殊的魔法可能会打破这个?

我在这里不知所措,任何帮助都将不胜感激

2 个答案:

答案 0 :(得分:1)

实施委托方法: shouldStartLoadWithRequest 然后在该方法中检测所请求的网址是否为 VIDEO 类型,如果是,请按照以下链接中给出的代码这对我有用:

Playing a video file from server in an Iphone app

这对播放任何视频都很有用。

答案 1 :(得分:1)

问题很可能是用户代理与Apple设备上的Safari不同:UIWebView发送一些无效字符串导致Vimeo(有时是YouTube)中断。

幸运的是,您可以使用以下内容覆盖应用的用户代理(C#,如果不够干净,请告诉我):

NSDictionary dictionary = NSDictionary.FromObjectAndKey(new NSString("Mozilla/5.0 (" + (UIDevice.CurrentDevice.Model.Contains("iPad") ? "iPad" : "iPhone" ) +  "; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"), new NSString("UserAgent"));
NSUserDefaults.StandardUserDefaults.RegisterDefaults(dictionary);

这使视频播放得很好。