Cefsharp 和视频标签 WebRTC
Posted
技术标签:
【中文标题】Cefsharp 和视频标签 WebRTC【英文标题】:Cefsharp and video tag WebRTC 【发布时间】:2014-07-11 12:30:57 【问题描述】:我正在尝试编写一个支持 webrtc 的 wpf。对摄像头的访问有效,但页面中 <video>
的显示无效。有人可以帮忙吗?
【问题讨论】:
您如何尝试将其附加到标签上?您愿意分享哪些代码以便我们提供帮助? 例如simpl.info/webrtc代表你想做什么?我从那里得到了 getUserMedia() 示例 我只想显示带有 【参考方案1】:你可以这样做:
var cefSettings = new CefSettings();
cefSettings.CefCommandLineArgs.Add("enable-media-stream", "enable-media-stream");
Cef.Initialize(cefSettings);
这与传递命令行参数的效果相同
【讨论】:
【参考方案2】:我假设您想通过 WebRTC 显示来自相机的视频,所以我认为需要致电 .getUserMedia()
来获取您的相机。为此,您必须使用基于 Chromium 30 或更高版本的 CefSharp。所以要么:
-Pre
版本
或使用当前的master
分支从源代码构建。
我刚刚使用CefSharp.MinimalExample 再次进行了快速测试,因此步骤如下:
确保您的 MinimalExample 使用 Chromium 31 或更高版本 - 请参阅 this PR - 除非在您阅读本文时它已经合并。
在MainView.xaml
中修改<cefSharp:WebView Address= />
属性为“https://simpl.info/getusermedia/sources/index.html”
构建并在运行时添加--enable-media-stream
命令行标志。
就是这样!连接好相机并且运气好的话,您应该可以在屏幕上看到自己的脸 - 或者相机指向的任何东西。
奖励信息:希望 PR #365 很快就能获得额外的支持,以允许传递标志并合并到 CefSharp。有了它,您可以在代码中设置标志,而不必将其作为命令行参数传递。
【讨论】:
感谢您的详细解答。我的问题是从给定的 url 显示视频文件/输出。就像在 youtube 上观看视频一样。 啊,所以与相机无关 - 但你有一个视频文件,或者它是一个流在什么样的 URL 和什么格式(即你必须确定它是支持的格式/编解码器由 Chromium 提供?- 它没有 Chrome 因许可而拥有的所有功能) 重申一下@bwtrent 上面所说的内容。分享有关“您尝试过什么”的更多详细信息/代码您的设置是什么 - CefSharp 版本/二进制或源安装视频格式等(您拥有 CefSharp wiki FAQ 等中提到的哪些 DLL),并且更容易提供帮助。 只是为了添加到奖励信息点:您现在可以使用 CefSettings.CefCommandLineArgs.Add 添加命令行 添加了这些参数,但仍然无法正常工作。 args 是名称值对。名称值对值实际上是什么? settings.CefCommandLineArgs.Add("--enable-media-stream", "--enable-media-stream"); settings.CefCommandLineArgs.Add("--enable-usermedia-screen-capturing", "--enable-usermedia-screen-capturing"); settings.CefCommandLineArgs.Add("enable-usermedia-screen-capturing", "enable-usermedia-screen-capturing"); settings.CefCommandLineArgs.Add("enable-media-stream", "enable-media-stream");【参考方案3】:正确的代码是这个
Dim settings As New CefSettings settings.CefCommandLineArgs.Add("--enable-media-stream", "1") CefSharp.Cef.Initialize(settings) settings.CachePath = "cache"
【讨论】:
以上是关于Cefsharp 和视频标签 WebRTC的主要内容,如果未能解决你的问题,请参考以下文章