iPad上的UIWebView无法播放Vimeo视频

9

好的,我查看了其他人在vimeo上遇到的大部分问题,但我认为他们没有遇到我遇到的问题。

当我在iPhone和iPad的Safari应用程序中打开vimeo视频时,它们都很好,没有任何问题。

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

问题是,如果我现在在iPad上安装同样的应用程序,则vimeo播放器将无法加载视频,它只是停顿不前,旋转标志仍在旋转,但视频无法加载。

然而,之后我创建了一个基本应用程序,在其中一个本机iPad应用程序中,通过UIWebView加载vimeo播放器URL,而不是调整大小或“2x”适合iPad的iPhone应用程序。令人惊讶的是,这很有效。

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

我很茫然,任何帮助都将不胜感激。


我意识到这个问题已经存在多年了,但如果现在有人偶然发现它:这些设备上安装了哪些版本的iOS?在iOS 9上使用Vimeo存在问题。 - Richard
在撰写本问题时,应用程序正在使用iOS5。 - Jason
2个回答

1
实现委托方法:shouldStartLoadWithRequest,然后在该方法中检测请求的URL是否为VIDEO类型,如果是,则请按照下面链接中给出的代码进行操作,这对我很有效:

在iPhone应用程序中从服务器播放视频文件

这将有助于播放任何视频。


1

问题可能出在用户代理上,这与苹果设备上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);

这使得视频可以正常播放。

谢谢您的回复,不幸的是我现在没有时间自己测试,但如果有其他人可以评论这是否是正确的解决方案,我会将您的答案标记为正确。 - Jason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接