diff --git a/VPet-Simulator.Windows/MainWindow.cs b/VPet-Simulator.Windows/MainWindow.cs index 1ce6d5d..7f7303d 100644 --- a/VPet-Simulator.Windows/MainWindow.cs +++ b/VPet-Simulator.Windows/MainWindow.cs @@ -470,11 +470,35 @@ namespace VPet_Simulator.Windows } } } + private bool? AudioPlayingVolumeOK = null; /// /// 获得当前系统音乐播放音量 /// public float AudioPlayingVolume() { + if (AudioPlayingVolumeOK == null) + { + try + { + float vol = 0; + using (var enumerator = new MMDeviceEnumerator()) + { + using (var meter = AudioMeterInformation.FromDevice(enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia))) + { + vol = meter.GetPeakValue(); + AudioPlayingVolumeOK = true; + } + } + } + catch + { + AudioPlayingVolumeOK = false; + } + } + else if (AudioPlayingVolumeOK == false) + { + return -1; + } using (var enumerator = new MMDeviceEnumerator()) { using (var meter = AudioMeterInformation.FromDevice(enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia)))