【问题标题】:Embedding JavaScript? Or maybe some other technology is used?嵌入JavaScript?或者也许使用了其他一些技术?
【发布时间】:2012-02-14 20:39:27
【问题描述】:

首先,我想向您展示一段代码。该代码是将 YouTube 电影嵌入到您的网站的简单(旧样式):

<object width="560" height="315">
    <param name="movie" value="http://www.youtube.com/v/-pGYHDcQDwA?version=3&amp;hl=da_DK"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/v/-pGYHDcQDwA?version=3&amp;hl=da_DK" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>

这很简单并且有效。

我目前的解决方案

我还有一个视频播放器,它也允许嵌入。嵌入代码基本一致:

<object width="387" height="316" align="top">
    <param name="movie" value="http://example.com/embedplayer.swf"></param>
    <param name="salign" value="lt" /></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <param name="wmode" value="transparent"></param>
    <embed src="http://example.com/embedplayer.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" salign="lt" width="387" height="316"></embed>
</object>

我的问题

我想让观看者在 iPad 或 iPhone 上观看我的视频。
文件格式不是问题,因为视频已被编码为多种所需格式。

我希望拥有与 YouTube 嵌入代码类似的功能。在 iPad/iPhone 上查看带有 YouTube 嵌入代码的页面时,会出现其他内容(我猜是带有指向正确文件格式链接的图像)。

在 iPad/iPhone 上查看我自己的嵌入代码时,这显然不起作用,因为我直接链接到 SWF 文件。

我尝试了什么?

试图找出 YouTube 嵌入/对象服务的方式和内容,我只是尝试对嵌入代码 (http://www.youtube.com/v/-pGYHDcQDwA?version=3&hl=da_DK) 中指定的 YouTube URL 执行一些简单的 GET 请求,这给了我大部分 404(因为错误标题)或带有新 Flash 对象的新 HTML 源。
换句话说,我无法手动重现为 iPad/iPhone 提供的内容。

可能的/替代解决方案

YouTube 还允许使用一种新的嵌入方法。
它看起来像这样:

<iframe width="560" height="315" src="http://www.youtube.com/embed/-pGYHDcQDwA" frameborder="0" allowfullscreen></iframe>

这对我来说非常透明。在 iframe 中嵌入另一个页面允许外部页面进行检查,从而允许向客户端提供正确的内容(HTML5、Flash 或其他)。没什么大不了的。

问题

  1. 这对 YouTube 的旧嵌入代码有何作用?对我来说,使用 embed/object 标签应该嵌入某种指定的对象,但似乎 YouTube 的嵌入代码允许在 embed/object 元素中包含不同的内容。
  2. 新的(替代解决方案)会是更好的方法吗?它看起来很灵活,并且允许将来轻松维护。但我总是听说 iframe 是禁忌。

【问题讨论】:

    标签: javascript html embed


    【解决方案1】:

    他们使用服务器端脚本进行代理检测并根据他们检测到的用户代理提供不同的内容。

    【讨论】:

    • +1。 YouTube 一直在为没有 Flash 的受支持设备提供 [HTML5 视频](en.wikipedia.org/wiki/HTML5_video) since 2010
    • 我有点明白 - 我在我的问题中这么说。我不知道如何,嵌入/对象中的内容可以显示图像、flash 或 HTML5。
    • 它不返回 flash 和 html5 的代码,它返回一个或另一个。至于图像,虽然您可以使用 javascript 和操纵 z-index 来实现封面图像,但通常播放器提供了一种在显示时将封面图像作为参数传递给 Flash 播放器的方法。例如,许多网站将 jwplayer 与 swfobject 库结合使用,以提供 javascript 包装器,以便以编程方式将参数传递给播放器。
    • 我没有这么说 - 我的意思是 “为客户端提供正确的内容(HTML5、Flash 或其他)” 您没有回答任何问题我的问题。发布我在问题中已经涵盖的内容并不能作为答案验证。
    【解决方案2】:

    看来我看错了方向。

    问题一:
    在 iPhone/iPad 上使用嵌入代码测试其他视频网站给了我预期的结果 - 一个空白区域。

    看来,通过Content Negotiation,设备浏览器能够将对象/嵌入标签替换为在设备上启动 YouTube 应用程序所需的元素。

    这意味着我无法创建类似的解决方案,这意味着我必须创建/使用 HTML5 视频播放器或使用带有 iframe 的替代解决方案(我可以将两者结合起来)。

    这使得回答第二个问题变得多余,因为我没有其他选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      相关资源
      最近更新 更多