delphi - TEmbeddedWB 中的 Youtube 视频不再工作?

标签 delphi youtube-api delphi-xe2 twebbrowser

在 TEmbeddedWB 中的 iframe 内播放 Youtube 视频一直有效,但不幸的是现在它不再有效了。 Google 是否进行了更改以停止在具有嵌入式网络浏览器的程序中播放视频? 我有以下简化的 HTML 文件(可以在任何网络浏览器中完美加载和播放):

<!DOCTYPE html>
<html>
  <head>
    <title>A Video</title>
  </head>
  <body>
    <iframe width="640" height="360" src="http://www.youtube.com/embed/HnbMYzdjuBs?feature=player_detailpage" frameborder="0" allowfullscreen></iframe>
  </body>
</html>

我使用以下代码加载它:

procedure TForm1.btn1Click(Sender: TObject);
begin
  EWB.LoadFromFile('D:\video.html');
end;

正如我所说,在任何网络浏览器中打开此文件都可以完美打开并播放。但我只看到黑屏,什么也没有发生。

编辑201306172342:

即使我将上述 HTML 文件放在网络服务器上并导航到它,它仍然是黑色的:

WB.Navigate('http://www.mywebsite.com/video.html');

当然,在网络浏览器中显示此页面,例如Chrome 可以正常显示并播放视频!

请问有人可以帮忙吗???

最佳答案

Adobe 有时会从计算机中删除他的 ActiveX 程序。 (通常通过插件更新来完成)。
如果您认为下次更新时会再次安装它,那您就错了。

首先您应该检查这是否已经发生。

系统设置

查找 Flash Player 图标。

enter image description here

在额外属性中,您会看到未安装
(他们最好以这种方式表达这条信息。
上次插件更新时已删除)。

enter image description here

下载新的 aktivex 部分。

Flash Player Support Center

enter image description here

双击 flashplayer_11_ax_debug.exe 并按照说明进行操作。

新的控件指示。看起来已经好多了。

enter image description here

安装 aktivex 部分之前。
为了测试这一点,我准备了一个小测试程序。 (XP Sp3、Delphi 5)
使用的 youtube.html 与您上面发布的 video.html 相同。

unit youtube;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, OleCtrls, SHDocVw_EWB, EwbCore, EmbeddedWB, SHDocVw,
  MOZILLACONTROLLib_TLB;

type
  TForm1 = class(TForm)
    EmbeddedWB1: TEmbeddedWB;
    WebBrowser1: TWebBrowser;
    MozillaBrowser1: TMozillaBrowser;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  EmbeddedWB1.Navigate('http://www.moskito-x.de/stack/youtube.html');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.moskito-x.de/stack/youtube.html');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  MozillaBrowser1.Navigate('http://www.moskito-x.de/stack/youtube.html');
end;

end.

Button1 到 Button3 后,我得到以下内容

enter image description here

安装 flashplayer_11_ax_debug.exe 后
我得到以下信息。

enter image description here

我将运行 Mozilla 浏览器。(今天不行:-) )

您的 aktivex 文件夹现在应该如下所示。

enter image description here

在你的问题中你说:

Playing a Youtube video inside an iframe in TEmbeddedWB has always worked,   
but now unfortunately it does not work anymore.

查看 FlashUtil32_11_7_700_???_Plugin.exe
的日期 那是您的 TMembeddedWB 停止工作的时间。

关于delphi - TEmbeddedWB 中的 Youtube 视频不再工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17128548/

相关文章:

ios - YouTube 在 iOS 上直播?

delphi - 为什么在 Delphi XE2 64 位中 HKEY_ 常量为 "Constant expression violates subrange bounds"?

delphi - 如何捕获 TDataModule.OnCreate 事件中的异常?

delphi - 通用集合中的记录相等性

delphi - 在运行时更改应用程序的图标

youtube - 播放YouTube数据API中播放列表的所有视频

python - 使用API​​ v3在youtube中上传视频

Delphi XE2 HTTPRIO 无法检索服务/端口的 URL 端点

delphi - 如何强制客户端数据集重新计算计算字段和内部计算字段?

delphi - 如何从 VB6 调用 Delphi DLL