【问题标题】:VLC ActiveX in a local webpage with WPF WebBrowser control带有 WPF WebBrowser 控件的本地网页中的 VLC ActiveX
【发布时间】:2013-02-07 10:47:52
【问题描述】:

所以我尝试在 WPF WebBrowser 控件 下运行 VLC ActiveX v.2 并在本地加载它。

而且 VLC ActiveX 不工作...

C#

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{ 
  var file = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "index.html");

 using (StreamReader sr = new StreamReader(file))
 {
     String url = sr.ReadToEnd();
     wb.NavigateToString(url);
  }
}

HTML

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=9">
    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
    <meta http-equiv="pragma" content="no-cache" />
    <title></title>
</head>
<body>
    <object width="720" height="408" id='vlc1_IE' events="True" codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab" classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921">
        <embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2"
            width="720" height="408"
            id="vlc1">
        </embed>
        <param name="src" value="http://content.bitsontherun.com/videos/bkaovAYt-52qL9xLP.mp4" />
        <param name="ShowDisplay" value="True" />
        <param name="AutoPlay" value="False" />
    </object>
</body>
</html>

请注意,如果我远程加载它工作正常!

我也尝试过像嵌入资源一样使用 index.html。

所以我用过

Stream docStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("WpfApplication12.index.html");
wb.NavigateToStream(docStream);

有可能吗? WPF WebBrowser 控件是否非常受限于使用 ActiveX 执行本地网页?

有什么线索吗?

附:我尝试对 WInForm WebBrowser 控件做同样的事情 - 不开心...

P.S.#2 我已经尝试过这个项目http://www.codeproject.com/Articles/3919/Using-the-WebBrowser-control-simplified,并且与 VLC ActiveX 相同的 HTML 在那里工作正常。 但它是用 C++ 完成的,我根本不知道...... :(

附: #3 我刚刚尝试过 MS Media Player 和 VLC ActiveX,MS Media Player 工作正常!

  <embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2"
            width="720" height="408"
            id="vlc1">
        </embed>

    <object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"
        <param name="URL" value="example.wmv" >
        </object>

P.S.#4 我也尝试使用this 示例动态创建 VLC ActiveX 控件,但一点也不快乐......

【问题讨论】:

    标签: c# .net browser activex vlc


    【解决方案1】:

    关于此评论:

    请注意,如果我远程加载它工作正常!

    您是否使用 Internet Explorer 进行此测试?如果有,有插件吗?

    我问这个问题是因为 WebBrowser 控件(至少在 WinForms 中)确实支持插件/附加组件。仅仅因为某些东西在您的成熟浏览器中工作并不一定意味着它可以在 WebBrowser 中工作。如果您为此 VLC 集成使用 ActiveX 插件,则可能无法在 WebBrowser 控件中使用。

    针对评论进行编辑

    当您尝试此代码时(请注意,我已经稍微更改了您的第二行):

    Stream docStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("WpfApplication12.index.html");
    wb.NavigateToStream(docStream);
    

    ...您是说它根本不加载 HTML?还是它已加载,但您的视频 (VLC) 控件不起作用?

    【讨论】:

    • 谢谢你的意见,兄弟!这是一个问题,因为我只在本地加载了一个 html 文件,并且它发生在 WinForm/WPF 浏览器控件中。如果我将 html 放入 IIS 并将 WPF WebBrowser 控件指向 REMOTE html,它工作正常。正如我所说,VS C++ 项目可以很好地处理这个本地文件。 (好吧,我不知道如何将 C++ exe projext 转换为 DLL 以在 WPF 项目下托管它)。是的,我没有安装任何 IE 插件。
    • 我也尝试过使用 IE 安全选项,但没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多