c# - 如何在 Microsoft WebView2 中启用媒体自动播放?

标签 c# winforms asp.net-core webview2

我正在使用 WinForms 应用程序,并在其中创建了一个 WebView2 实例来使用 HTML5 播放媒体内容。我一直在查看文档以找到一些方法,通过它我可以在 WebView2 中启用自动播放,这样我的桌面应用程序就可以在没有用户交互的情况下播放视频。

我尝试过的事情。

  • 我根据这个 Documentation 更改了注册表没有成功
  • 我还从 Microsoft Edge 中启用了自动播放,但它没有任何效果。

谢谢!

最佳答案

经过深入研究,我找到了解决方案,我的团队负责人也找到了解决方案。

我排序的第一个解决方案是在初始化 WebView2 后立即执行单击 WebView2 窗口的变通方法,使用此 SO Answer .这可以通过注册到 WebView2.NavigationCompleted 事件来实现。

第二种方案更优雅更合适;虽然需要最后润色,但任何人都可以根据自己的喜好进行改进。

var options = new CoreWebView2EnvironmentOptions("--autoplay-policy=no-user-gesture-required");
var path = @"C:\Program Files (x86)\Microsoft\EdgeWebView\Application\92.0.902.67";
var environment = await CoreWebView2Environment.CreateAsync(path, null, options);

var webView = new WebView2();
await webView.EnsureCoreWebView2Async(environment);

请注意,变量“路径” 包含您的WebView2 运行时执行文件所在的目录。当 Microsoft 发布新版本时,该路径将更改。您还可以下载 WebView2 固定运行时并将其包含在您的项目依赖项中。

关于c# - 如何在 Microsoft WebView2 中启用媒体自动播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68709227/

相关文章:

winforms - 将 VB6 项目转换为 .net- 引用错误?

asp.net - 基于microsoft/aspnet的Docker容器无法加载Kestrel

c# - 使用事务内存数据库进行单元测试时,如何抑制 InMemoryEventId.TransactionIgnoredWarning?

c# - 如何从 Utf8JsonReader 获取属性路径?

c# - 在保留结构的同时编码(marshal)它 "unmanaged"

c# - 如何使用 HttpListener 处理 WindowsImpersonationContext?

c# - FileUpload.PostedFile 在 UpdatePanel 中始终为 null

c# - 无法将类型 'string' 隐式转换为 'System.DateTime' ,无法转换特定列的数据类型

c# - 从 DataTable 填充时如何禁用 DataGridView 图像列中的空图像

winforms - 如何从winforms c#中的datagridview中删除行指示器列