5

当我在我的 PHP 代码中使用 oembed URL$video->width$video->height从我上传的视频中提取 and 时,我得到的值与我看到的与我的 Youtube 视频相关的任何内容都不匹配。

  • http://youtu.be/p7ftPYU2_0w

  • 上传到 Youtube 的原始视频尺寸:640 x 336

  • oembed 返回:480 x 270

  • 从 Youtube 页面 UI 共享时最小的嵌入选项:560 x 316

有谁知道 oembed 从哪里得到这些值?为什么默认为480?有没有办法获得真正的视频尺寸,或者至少将默认值提高到 640 x [proportional_height]

我的目标是在嵌入我的网站时保留视频的原始尺寸(无缩放),用户实际上不需要再次键入视频尺寸。

4

4 回答 4

1

Youtube 可能会生成一个内容,它可以提供嵌入内容而不是原始视频。生成内容的宽度和高度可以是480 x 270。因此,oEmbed api 可以始终返回此值。AFIK 没有办法从 api 端获取视频值的原始尺寸,除非或直到提供者提供。

您可以尝试在 jquery 和 css 的帮助下调整视频的宽度和大小。

oEmbed规范说maxwidthmaxheight在请求 api 时可以提供参数。所以我们可以限制视频的最大宽度和高度。

希望能帮助到你 !

于 2017-09-17T21:00:48.227 回答
0

您始终可以使用 CSS 进行调整。

于 2013-04-10T16:53:10.567 回答
0

尝试这样的事情

<iframe title="YouTube video player" width="727" height="430" src='http://www.youtube.com/embed/p7ftPYU2_0w' frameborder="0"></iframe>

据我所知,没有办法从嵌入中获取视频的高度。当页面加载并从那里开始时,您可以使用 jquery 获取播放器的高度。

于 2013-04-10T17:01:56.400 回答
0

oembed 响应中的宽度和高度是正确显示返回的 html 内容所需的最小高度和宽度。这是视频、界面、任何额外的标题栏或控件或徽标等。

唯一重要的是当请求 oembed 响应时。请求将指定宽度和高度,它们是支持的最大尺寸,响应将指定显示内容所需的最小尺寸。

如果最小内容响应大小不适合最大容器请求大小,则 oembed 尝试应该失败。

在这种情况下,youtube 声明需要 480 x 270 才能显示 youtube 界面。它实际上并没有说明视频本身,只有界面,因为任何浏览器都可以将任何视频自动缩放到任何分辨率。

于 2018-06-13T22:36:14.197 回答