2012-04-27 68 views
9

好的,我已经环顾了人们用vimeo获得的大多数其他问题,我不认为他们遇到了同样的问题。Vimeo视频不能在iPad上播放UIWebView

当我在iPhone和iPad上的Safari应用程序上打开一个vimeo视频时,它们都可以正常工作,没有任何问题。

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

问题是如果我现在在我的iPad上安装相同的应用程序,vimeo播放器拒绝加载视频,它只是挂起,并且微调控制器继续旋转但视频无法加载。然而,现在我做的是创建一个基本应用程序,它将UIWebView中的vimeo播放器URL加载为本机iPad应用程序,而不是调整大小或“2x”以适应iPad的iPhone应用程序。令人惊讶的是,这工作得很好。

所以,现在我很困惑......为什么iPad不会运行专为iPad设计的应用程序,就不会播放vimeo视频?幕后有没有什么特别的魔法可以打破这种情况?

我在这里损失,任何帮助,将不胜感激

+0

我意识到这个问题已经过去了几年,但如果有人现在偶然发现:这些设备上安装了哪些iOS版本?在iOS 9上Vimeo存在问题。 – Richard 2015-09-22 15:31:59

+0

在撰写此问题时,这些应用程序使用的是iOS5 – Jason 2015-10-08 04:47:18

回答

1

实现委托方法:shouldStartLoadWithRequest然后在该方法只检测到所请求的URL是否是类型的视频如果是则请按照以下链接中给出的代码为我工作:

Playing a video file from server in an Iphone app

这将是在播放任何视频好。

1

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

Luckly,你被允许使用以下重写应用程序的用户代理(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); 

这使得视频播放就好了。

+0

感谢您的回复,不幸的是我现在没有时间自行测试此功能,但是如果其他人可以发表评论这是正确的解决方案,我会标记你的答案是正确的。 – Jason 2013-09-20 00:59:46