【问题标题】:Youtube iFrame player in IOS Webview loads very slowlyIOS Webview 中的 Youtube iFrame 播放器加载速度非常慢
【发布时间】:2014-07-18 03:35:36
【问题描述】:

我在 IOS 的 Web 视图中使用定义为 here 的标准 YouTube iFrame 播放器。一切正常,除了视频在宽带网络上加载持续时间超过 6 秒。当我使用 Safari 在 Youtbue.com 上加载完全相同的视频时,在同一网络上,使用同一台 iPad,视频始终在 3 秒内加载。

有谁知道为什么 IOS Webview 视频的加载时间是原来的两倍?

或者 YouTube(由 Google 拥有)是否故意在他们的网站上加载视频比使用他们的播放器 api 的应用程序更快?

关于我的方法的其他几个数据点: 1)我只测量视频在我的应用程序中加载的时间,而不是 webview 的加载,甚至是包含 Youtube iframe 的 webview 中的 html 页面。我在 webview 加载 Youtube iFrame 后开始测量。 2) Youtube App 的表现与使用 Safari 的 YouTube 网站类似。我假设 Youtube App 使用 Webview。 3)结果似乎在不同的日子有所不同。 YouTube 网站和应用视频的平均速度总是更快,但数量会因天而异。

【问题讨论】:

    标签: ios youtube-api


    【解决方案1】:

    我觉得“(由 Google 拥有)”评论暗示了一些我认为不存在的改变动机..

    这里可能存在几个不同的问题:

    1) 您似乎正在使用 Mobile Safari 测试 Youtube.com,并使用 webview 测试嵌入式播放器:

    这不是一个公平的比较,因为 webview 已被证明比 safari 慢得多。 (例如http://www.guypo.com/mobile/ios-browsers-speed-bakeoff/

    2) 您没有明确说明您测量的是什么加载时间

    你是在这段时间创建webview并设置浏览器环境吗?

    您是否正在加载包含嵌入播放器代码的脚本标签的文档?

    在您加载视频时,Safari 是否有 youtube.com 的热缓存?

    在您点击加载页面之前,许多浏览器会在您键入时开始在后台加载请求 - 此类性能调整可以显着减少加载网站的明显时间,但会使比较变得困难。

    3) 他们优化的常见用户故事不同

    在将 YouTube 播放器 API 插入页面或网站的几乎所有情况下,视频都不会自动开始播放。

    相比之下,几乎每个 YouTube 观看页面加载都会自动开始播放视频。

    YouTube 之前在演示文稿中讨论过的优化之一是将视频流的第一部分嵌入到页面中甚至在视频播放器加载之前

    这是为了更快的视频播放而牺牲额外的用户带宽,当您知道用户肯定会播放视频时,这是有意义的:但是,如果他们要为嵌入式视频这样做,那么它会显着减慢播放器的加载时间并不总是开始播放 - 这是世界上所有网站的相当大比例!

    4) YouTube 在这两种情况下涉及的时间不同,只能稍后开始为嵌入式播放器优化体验。

    YouTube 能够在 youtube.com 上进行优化,而在使用其 html5 播放器 API 的第三方网站/应用程序上无法做到

    以在 youtube.com 上观看视频为例:YouTube 从第一个 http 请求开始就参与其中 - 他们知道您正在播放哪个视频,并且他们知道您说您使用的是哪个浏览器(因此可以优化体验为尽可能多地预加载正确的视频和/或视频播放器)。

    在嵌入 iframe 的情况下:

    • 浏览器首先加载您的页面,然后必须从中解析和提取网址。
    • 然后它向 YouTube 发出 javascript 请求(请注意,如果您使用的是 javascript 播放器 API 而不是直接嵌入的 iframe,则需要将其缓存在浏览器上,因此 YouTube 仍然无法优化此视频的性能此时)
    • 完成整个页面的加载后,它可以创建一个指向 YouTube 的 iframe(所有这些都需要 CPU 和内存管理时间)
    • 此时,YouTube 可以开始优化事物以尝试加快体验。

    【讨论】:

    • 感谢您的详细回答,但您的所有观点都认为我的方法存在缺陷。我的问题实际上是在寻找解决问题的技术解决方案,如果没有,请理解为什么会发生这种情况(不排除这是按照谷歌的设计工作)。我添加了有关我的方法的更多细节。我确信我只是在测量视频加载时间,而不是加载 webview 或 webview 内的 html 页面的时间。我还注意到YouTube的IOS APP(使用webview)性能优越。
    • RE:YouTube 应用程序 - 我不相信 YouTube 应用程序使用 webview:我知道他们希望能够为开发人员发布一个本地库(如在 android 上),但是由于技术限制,不能。回复:YouTube.com 与 iframe 播放器 - 如果您测量从点击视频到播放的时间,那么我相信上面的第 3 点,结合 Safari 与 webview 点,解释差异。
    • 如果 YouTube 应用没有按照 YouTube API 的要求使用 web 视图,那么这可以解释性能差异。这也支持 YouTube 有一个专门的实现来使他们的视频比通过 YouTube API 提供的更好/更快的想法。正确的 ?如果 YouTube API 只允许开发人员使用 webview 嵌入视频,并且 YouTube 应用程序有一个专门针对 YouTube 的实现,那么假设他们也有一个独家实现来让他们的视频比YouTube API。
    • 6 年后,我正在观察同样的事情。加载 youtube 链接时,iOS 的 WebView (WKWebView) 上的 Youtube 速度要慢得多。另一方面,如果使用 /embed/,它似乎以可接受的速度加载(但仍然较慢)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2013-03-26
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多