本文概述
- 添加启用媒体流标志
- 例子
但是, 该解决方案非常简单, 只需在CefSharp的初始化时添加– enable-media-stream标志, 即可使用麦克风和摄像头。
添加启用媒体流标志解决方案听起来很简单吧?它的实现也很容易。你只需要查找项目中CefSettings加载到Cefsharp的位置, 并使用CefCommandLineArgs字典的Add方法添加我们需要的标志:
CefSettings settings = new CefSettings();
// Add the --enable-media-stream flagsettings.CefCommandLineArgs.Add("enable-media-stream", "1");
Cef.Initialize(settings);
CefSettings.CefCommandLineArgss属性使你可以将自定义命令行参数添加到应在Chromium的初始化以及OnBeforeCommandLineProcessing事件中添加的标志的集合。 Add函数的第一个参数指示应添加的标志的名称, 第二个参数为其值(在这种情况下, 1指示应包括该标志)。
例子【如何在WinForms中为CefSharp启用WebRTC(访问摄像机和麦克风)】下面的示例在表单中初始化CefSharp的简单实例。它将加载一个网站, 使你可以在浏览器中拍照(或根据你设置的Web URL设置音量计)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// Load cefsharpusing CefSharp;
using CefSharp.WinForms;
namespace CefsharpExample{public partial class Form1 : Form{public ChromiumWebBrowser chromeBrowser;
public void InitializeChromium(){CefSettings settings = new CefSettings();
// Initialize cef with a command line argument// In this case the enable-media-stream flag that allows you to access the camera and the microphonesettings.CefCommandLineArgs.Add("enable-media-stream", "1");
Cef.Initialize(settings);
// Create a browser component// In this example we are opening a website that allows you to take pictures with the camera onlinechromeBrowser = new ChromiumWebBrowser("https://webcamtoy.com");
// Or if you want to test the microphone level instead// chromeBrowser = new ChromiumWebBrowser("https://webaudiodemos.appspot.com/volume-meter/");
// Add the cef control to the form and fill it to the form window.this.Controls.Add(chromeBrowser);
chromeBrowser.Dock = DockStyle.Fill;
}public Form1(){InitializeComponent();
// Start cefsharpInitializeChromium();
}private void Form1_Load(object sender, EventArgs e){}private void Form1_FormClosing(object sender, FormClosingEventArgs e){Cef.Shutdown();
}}}
CefSharp的有趣之处在于, 与Google Chrome不同, 不会提示你授予对麦克风或摄像头的访问权限, 而只是授予对设备的访问权限。
编码愉快!
推荐阅读
- 如何在Symfony 3中检测移动设备
- 如何在Symfony 3中将数字转换为单词(数字拼写)
- 如何解决MySQL常规错误(1030从存储引擎得到了139错误)
- 如何在Symfony 3中使用php创建Word文件
- 如何在WinForms中使用C#检索CPU的温度
- 如何从控制器执行symfony命令
- 如何在WinForms中使用C#检索主板信息
- 在Android上将Canvas移植到OpenGL
- 如何在Android上将OpenGL ES 1.0代码转换为OpenGL Es 2.0()