弹来弹去跑马灯!

程序静音(进程静音)

准备使用微软的EDGE组件,需要静音,按照文档webView.CoreWebView2.IsMuted = true;发现不起作用。。。https://github.com/MicrosoftEdge/WebView2Feedback/issues/2120 又说下个版本修复。等不及了。

这里看到一篇文字:https://stackoverflow.com/questions/70329354/c-sharp-mute-other-application 使用进程静音的方案:

加Nuget包: CSCore



//using CSCore.CoreAudioAPI; private void MuteWebApp() { Task.Run(() => { foreach (AudioSessionManager2 sessionManager in GetDefaultAudioSessionManager2(DataFlow.Render)) { using (sessionManager) { using (var sessionEnumerator = sessionManager.GetSessionEnumerator()) { foreach (var session in sessionEnumerator) { var simpleVolume = session.QueryInterface<SimpleAudioVolume>(); var sessionControl = session.QueryInterface<AudioSessionControl2>(); Console.WriteLine((sessionControl.Process.ProcessName, sessionControl.SessionIdentifier)); if (Process.GetProcessById(sessionControl.ProcessID).ProcessName.Equals("msedgewebview2"))//chrome { simpleVolume.IsMuted = true; } } } } } }); } private static IEnumerable<AudioSessionManager2> GetDefaultAudioSessionManager2(DataFlow dataFlow) { var enumerator = new MMDeviceEnumerator(); var devices = enumerator.EnumAudioEndpoints(dataFlow, DeviceState.Active); foreach (var device in devices) { Console.WriteLine("Device: " + device.FriendlyName); var sessionManager = AudioSessionManager2.FromMMDevice(device); yield return sessionManager; } }

  

posted @ 2022-03-21 14:30  wgscd  阅读(178)  评论(0编辑  收藏  举报