delphi - 如何在较新版本的 Delphi 中嵌入 YouTube 视频?

标签 delphi video youtube embed delphi-xe7

我正在尝试将 YouTube 视频加载到 Delphi XE7 中的 TWebBrowser 中,但出现如下错误:

视频播放需要 Adob​​e Flash Player 或支持 HTML5 的浏览器。
获取最新的 Flash Player
了解有关升级到 HTML5 浏览器的更多信息

我可以很好地加载普通的 HTML。

我之前在这里找到的示例是针对更旧版本的 Delphi 的,所以我想知道这是否是新版本、TWebBrowser 或我的环境(VMWare 7 和 Windows 7)中的问题。

编辑:我的目标只是能够从 URL 加载和播放视频,例如 YouTube 视频。 TWebBrowser 以外的解决方案都很好,特别是如果它们可以跨平台运行。

最佳答案

您想知道您的问题是否与 Delphi 版本有关。那么 WebBrowser 控件是一个系统控件。 Delphi 版本无关,因为该服务由底层系统提供。如果有什么变化的话,很可能是 You Tube 传送视频的方式。

如果您正在制作嵌入远程视频的 HTML,那么您应该遵循 You Tube 的最新文档以了解如何完成。不要使用已有多年历史的 Delphi 特定文章作为指南。使用专门针对 You Tube 使用的最新技术的现代文章。

我确实有一种感觉,虽然您没有在问题中说明,但您正在使用一种旧的且可能已弃用的方法来嵌入 YouTube 视频。按照此处所述使用 iframe:http://www.w3schools.com/html/html_youtube.asp


Adobe Flash Player or an HTML5 supported browser is required for video playback.

如果您不采取其他特定步骤,您的 WebBrowser 控件将使用旧版 IE 浏览器引擎。所以它不会支持 HTML5。甚至可能不支持 Flash,前提是 You Tube 仍准备将视频作为 Flash 提供。现在 HTML5 是首选。尤其是因为现代浏览器开箱即用地支持它,并且不需要安装第三方 Flash 插件。

选择使用带有 WebBrowser 控件的现代 HTML5 浏览器的一种方法是进行显式注册表设置(浏览器功能模拟),并可能指定 DOCTYPE。更多详情:How to have Delphi TWebbrowser component running in IE9 mode?尽管该问题专门询问 IE9,但答案中的文档链接提供了其他 IE 版本的详细信息。

如果您无法控制 HTML 文档,则需要使用上述方法。

另一方面,如果您确实控制了 HTML 文档的内容,那么还有另一种方法。你可以把这个放在

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

作为页面 <head> 中的第一项. edge的含义是最新版本的IE。如果您希望针对特定版本,例如IE9 那么你会使用:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

这里有更多信息:

旧版本的 IE 不支持此 header ,如果您需要满足它们的要求,那么您将返回到注册表中的浏览器功能仿真。感谢评论中的@whosrdaddy 和@TLama,IE8 似乎引入了对 X-UA-Compatible 的支持。 .

关于delphi - 如何在较新版本的 Delphi 中嵌入 YouTube 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566714/

相关文章:

jquery - 如何创建带有视差背景视频的网页

javascript - 循环遍历多个 JSON 请求(YouTube 数据 API)

delphi - 如何使用 RTTI 设置嵌套属性的值

delphi - GLScene(OpenGL库)网格轴绕错方向

windows - 有没有收到消息就 sleep 的方法?

javascript - 防止在 YouTube 视频之间快速转换时出现控制台错误

youtube - 适用于Java的YouTube数据API客户端库是否使用etags或gzip来实现流量优化?

delphi - case..of 与函数

video - 应用评论视频(应用商店)

php - FFMPEG 将视频文件从 FLV 转换为 MP4 不在浏览器上运行