IOS Webview中的Youtube iFrame播放器加载速度非常慢

时间:2014-05-28 18:52:37

标签: ios youtube-api

我在IOS上的Webview中使用标准的YouTube iFrame播放器here。一切都按预期工作,除了视频在宽带网络上加载一直需要6秒钟。当我使用Safari在同一网络上的Youtbue.com上加载完全相同的视频时,使用相同的iPad,视频会在3秒内持续加载。

有谁知道为什么IOS Webview视频需要两倍的加载时间?

或者YouTube(由谷歌拥有)故意在网站上加载视频比使用播放器api的应用更快吗?

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

1 个答案:

答案 0 :(得分:0)

我觉得"(由谷歌拥有)"评论提出了一些我不相信存在的改变者动机。

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

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

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

2)您没有明确说明您正在测量的加载时间

您是否在此时创建了Web视图并设置了浏览器环境?

您是否在此时加载包含嵌入式播放器代码的脚本标记的文档?

在您加载视频时,Safari是否为youtube.com提供了热门缓存?

在点击加载页面之前,许多浏览器会在您键入时在后台开始加载请求 - 这些性能调整可以显着缩短加载网站的时间,但难以进行比较。

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

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

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

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

这是额外用户带宽的折衷,可以实现更快的视频播放,当您知道用户肯定会播放视频时这是有道理的:但如果他们要为嵌入式视频执行此操作,那么它会显着减慢加载时间对于那些并不总是开始播放视频的玩家来说 - 这是世界上所有网站中相当大的比例!

4)YouTube参与了两个案例的不同阶段,并且只能在以后为嵌入式播放器开始优化体验。

YouTube可以使用他们的html5播放器API在youtube.com上对第三方网站/应用无法做进行优化。

如果您在youtube.com上观看视频:YouTube会直接参与第一个http请求 - 他们知道您正在播放哪个视频,并且他们知道您说的是哪个浏览器(因此可以优化体验)尽可能预加载正确的视频和/或视频播放器。)

在嵌入iframe的情况下:

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