1

我正在尝试将 Xilium.CefGlue 浏览器集成到现有项目中,但我似乎无法让它与 ogg 一起使用。我正在使用最新版本的 Xilium.CefGlue(xilium-xilium.cefglue-3caa551bd830) 和 Cef 二进制文件 (cef_binary_3.1384.1045)。在 Xilium.CefGlue 解决方案中运行项目时,一切正常。

为了确保问题不是由我的其他项目引起的,我启动了一个新的 Winforms 项目,添加了对 Xilium.CefGlue.dll、Xilium.CefGlue.Demo.dll 和 Xilium.CefGlue.WindowsForms.dll 的引用。我在我的 Program.cs 文件中使用与示例中 CefGlue.Client 项目中使用的相同代码,并在我的表单中创建一个新的 CefBrowser 并将其直接添加到我的控件中。我还将所需的ceflib 文件放在正确的位置。

现在,当运行应用程序并加载网页时,一切似乎都挂起,除非我在 Program.cs 的 CefSettings 中将 SingleProcess 更改为 true。但是,当加载另一个包含 html5 视频 (ogg) 的页面时,该页面不会被渲染。我确实注意到交互存在,因为我可以通过单击页面中心的按钮来开始播放视频。我可以听到视频播放,但页面只是保持空白。

在 CefGlue.Client 中加载相同的页面确实可以正常工作。现在,当我在示例项目 CefGlue.client 中将设置 SingleProcess 更改为 true 时,会发生同样的事情,所以我想它一定与此有关。

有人对出了什么问题有任何想法吗?

谢谢,安迪

4

2 回答 2

1

只需禁用 Visual Studio 托管进程,调试http://msdn.microsoft.com/en-us/library/ms185330(v=vs.80).aspx不会有问题

于 2013-03-05T06:09:40.340 回答
1

Sébastien Frippiat 在其他地方找到了答案:

似乎在使用 Visual Studio 进行调试时使用 SingleProcess=false 不起作用(应该与使用名为 project_exe.vshost.exe 的可执行文件而不是 project_exe.exe 的 Visual Studio 相关)。

所以我将我的 CefSettings 更改为:

var settings = new CefSettings
        {
            BrowserSubprocessPath = @"C:\CefGlueBrowser\CefGlueBrowser\bin\x86\Debug\CefGlueBrowser.exe",
            SingleProcess = false,
            MultiThreadedMessageLoop = true,
            LogSeverity = CefLogSeverity.Default,
            LogFile = "CefGlue.log",
        };

这似乎可以修复它以进行调试。

于 2013-02-07T10:56:40.283 回答