1

在 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)中显示此页面时,可以正常显示和播放视频!

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

4

1 回答 1

3

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

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

系统设置

寻找 Flash Player 图标。

在此处输入图像描述

在额外的属性中,您会看到一个not installed
(他们最好以这种方式制定此消息。
在上次插件更新中删除)。

在此处输入图像描述

下载新的 aktivex 部分。

Flash 播放器支持中心

在此处输入图像描述

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

一个新的控件指示。它已经看起来更好了。

在此处输入图像描述

在安装 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 to Button3,我得到以下信息

在此处输入图像描述

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

在此处输入图像描述

我将要运行的 mozilla 浏览器。(不是今天 :-))

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

在此处输入图像描述

在你的问题中你说:

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
那是你TEmbeddedWB停止工作的时间。

于 2013-06-21T00:16:06.693 回答