如何在 Microsoft WebView2 中启用媒体自动播放?
How to enable Media AutoPlay in Microsoft WebView2?
我正在使用 WinForms 应用程序,我在其中创建了一个 WebView2 实例来使用 HTML5 播放媒体内容。我一直在查看文档以找到一些方法,通过它我可以在 WebView2 中启用自动播放,这样我的桌面应用程序就可以在没有用户交互的情况下播放视频。
我尝试过的东西。
- 我按照这个 Documentation 更改了注册表但没有成功
- 我还在 Microsoft Edge 中启用了自动播放,但没有任何效果。
谢谢!
经过深入研究,我找到了解决方案,我的团队负责人也找到了解决方案。
我排序的第一个解决方案是在初始化 WebView2 window 后立即执行单击 WebView2 的变通方法,使用此 SO Answer。这可以通过注册到 WebView2.NavigationCompleted
事件来实现。
第二种方案更优雅更合适;虽然需要最后润色,但大家可以根据自己的喜好进行改进。
var options = new CoreWebView2EnvironmentOptions("--autoplay-policy=no-user-gesture-required");
var path = @"C:\Program Files (x86)\Microsoft\EdgeWebView\Application.0.902.67";
var environment = await CoreWebView2Environment.CreateAsync(path, null, options);
var webView = new WebView2();
await webView.EnsureCoreWebView2Async(environment);
请注意,变量 "path" 包含您的 WebView2 运行时执行文件所在的目录。当 Microsoft 发布新版本时,该路径将更改。您还可以下载 WebView2 固定运行时并将其包含在您的项目依赖项中。
我正在使用 WinForms 应用程序,我在其中创建了一个 WebView2 实例来使用 HTML5 播放媒体内容。我一直在查看文档以找到一些方法,通过它我可以在 WebView2 中启用自动播放,这样我的桌面应用程序就可以在没有用户交互的情况下播放视频。
我尝试过的东西。
- 我按照这个 Documentation 更改了注册表但没有成功
- 我还在 Microsoft Edge 中启用了自动播放,但没有任何效果。
谢谢!
经过深入研究,我找到了解决方案,我的团队负责人也找到了解决方案。
我排序的第一个解决方案是在初始化 WebView2 window 后立即执行单击 WebView2 的变通方法,使用此 SO Answer。这可以通过注册到 WebView2.NavigationCompleted
事件来实现。
第二种方案更优雅更合适;虽然需要最后润色,但大家可以根据自己的喜好进行改进。
var options = new CoreWebView2EnvironmentOptions("--autoplay-policy=no-user-gesture-required");
var path = @"C:\Program Files (x86)\Microsoft\EdgeWebView\Application.0.902.67";
var environment = await CoreWebView2Environment.CreateAsync(path, null, options);
var webView = new WebView2();
await webView.EnsureCoreWebView2Async(environment);
请注意,变量 "path" 包含您的 WebView2 运行时执行文件所在的目录。当 Microsoft 发布新版本时,该路径将更改。您还可以下载 WebView2 固定运行时并将其包含在您的项目依赖项中。