【问题标题】:Vimeo videos not playing on iPad UIWebViewVimeo 视频无法在 iPad UIWebView 上播放
【发布时间】:2012-04-27 13:40:31
【问题描述】:

好的,所以我环顾了人们在使用 vimeo 时遇到的大多数其他问题,但我认为他们没有遇到我遇到的同样问题。

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

现在我创建了一个 iPhone 应用程序,它有一个 UIWebView 并加载了一个 vimeo 播放器视频,而且效果也很好。

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

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

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

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

【问题讨论】:

  • 我意识到这个问题已经有好几年了,但如果有人现在偶然发现它:这些设备上安装了哪些版本的 iOS? iOS 9 上的 Vimeo 存在问题。
  • 在写这个问题的时候,应用使用的是 iOS5

标签: objective-c ios ipad uiwebview vimeo


【解决方案1】:

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

Playing a video file from server in an Iphone app

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

【讨论】:

    【解决方案2】:

    问题可能出在与 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);
    

    这使得视频播放得很好。

    【讨论】:

    • 感谢您的回复,很遗憾我现在没有时间亲自测试,但如果其他人可以评论这是正确的解决方案,我会将您的答案标记为正确。跨度>
    猜你喜欢
    • 2017-06-04
    • 2013-01-12
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2013-01-03
    • 2014-12-14
    相关资源
    最近更新 更多