【问题标题】:Youtube video in TEmbeddedWB does not work anymore?TEmbeddedWB 中的 Youtube 视频不再有效?
【发布时间】:2013-06-15 22:34:28
【问题描述】:

在 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 正常显示和播放视频!

拜托,有人可以帮忙吗???

【问题讨论】:

  • 你是说 bsalsa 之一?你为什么不使用 TWebBrowser 呢?无论如何尝试将 User-Agent 更改为更流行的,因为这个组件有自己的。
  • 通过资源管理器直接打开 d:\video.html 是否播放?
  • @user1580348:哇,伙计,为什么粗鲁的语气?我不想再帮你了。
  • @user1580348 同样的错误。 TWebbrowser 和 TEmbeddedWB 是同一个控件。不同的包装。以下是您可能想要查看的几个相关 SO 问题:stackoverflow.com/questions/3432585/…stackoverflow.com/questions/6823677/…
  • @WoutervanNifterick 我很抱歉蚂蚁想为语气道歉;这是一种情绪化的过度反应。

标签: delphi youtube-api delphi-xe2 twebbrowser


【解决方案1】:

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

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

系统设置

查找 Flash Player 图标。

在额外的属性中,您会看到 not installed
(他们最好以这种方式表述这条信息。
与上次插件更新一起删除)。

下载新的 aktivex 部分。

Flash Player Support Center

双击 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 停止工作的时间。

【讨论】:

  • 非常感谢!重新安装 ActiveX 解决了这个问题!但是,在安装 ActiveX 之前,系统设置 FlashPlayer 控制面板确实显示了正确的版本号(与安装 ActiveX 后现在显示的相同):!(img19.imageshack.us/img19/1421/zpj.gif)顺便说一句,您链接的 youtube.html 似乎配置错​​误: !(img854.imageshack.us/img854/412/dxb.gif) 您是否认为最好确保 ActiveX 已安装在最终用户的计算机上,并与我的应用程序的已部署安装程序一起安装?
  • @user1580348 : A) 抱歉,我的 .htaccess 配置错误:-)。现在它适用于所有人。 B) 寻找flash-player-distribution.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 2012-09-12
相关资源
最近更新 更多