Skip to content

Commit 9d63785

Browse files
committed
Replaced mute game method to NAudio
1 parent 129f762 commit 9d63785

File tree

17 files changed

+28
-161
lines changed

17 files changed

+28
-161
lines changed
Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
using System;
1+
using NAudio.CoreAudioApi;
2+
using System;
23
using System.Threading.Tasks;
3-
using System.Windows;
4-
using System.Windows.Interop;
5-
using vccli.net;
4+
using MMDevices = NAudio.CoreAudioApi.MMDeviceEnumerator;
65

76
namespace GenshinWoodmen.Core
87
{
@@ -20,42 +19,44 @@ private static async Task MuteProcessAsync(int pid, bool isMuted)
2019
{
2120
try
2221
{
23-
if (isMuted)
24-
await Api.MuteAsync(pid);
25-
else
26-
await Api.UnmuteAsync(pid);
22+
await Task.Run(() =>
23+
{
24+
MuteProcess(pid, isMuted);
25+
});
2726
}
2827
catch (Exception e)
2928
{
3029
Logger.Exception(e);
3130
}
3231
}
3332

34-
public static void MuteSystem(bool isMuted)
33+
private static void MuteProcess(int pid, bool isMuted)
3534
{
36-
try
37-
{
38-
SystemVolume.SetMasterVolumeMute(isMuted);
39-
}
40-
catch
35+
MMDevices audio = new();
36+
foreach (MMDevice device in audio.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active))
4137
{
38+
for (int i = default; i < device.AudioSessionManager.Sessions.Count; i++)
39+
{
40+
AudioSessionControl session = device.AudioSessionManager.Sessions[i];
41+
42+
if (session.GetProcessID == pid)
43+
{
44+
session.SimpleAudioVolume.Mute = isMuted;
45+
break;
46+
}
47+
}
4248
}
4349
}
4450

45-
#if LEGACY
46-
[Obsolete]
47-
public static void MuteSystem(IntPtr? hwnd = null)
51+
public static void MuteSystem(bool isMuted)
4852
{
4953
try
5054
{
51-
hwnd ??= new WindowInteropHelper(Application.Current.MainWindow).Handle;
52-
_ = NativeMethods.SendMessage((IntPtr)hwnd, NativeMethods.WM_APPCOMMAND, (int)hwnd, NativeMethods.APPCOMMAND_VOLUME_MUTE);
55+
SystemVolume.SetMasterVolumeMute(isMuted);
5356
}
54-
catch (Exception e)
57+
catch
5558
{
56-
Logger.Exception(e);
5759
}
5860
}
59-
#endif
6061
}
6162
}

src/GenshinWoodmen/GenshinWoodmen.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
<Version>$(VersionPrefix)1.6.3</Version>
1616
<Authors>GenshinMatrix</Authors>
1717
<Company>GenshinMatrix</Company>
18-
<RestoreSources>$(RestoreSources);..\packages\vccli.net\;https://api.nuget.org/v3/index.json</RestoreSources>
1918
</PropertyGroup>
2019

2120
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -67,11 +66,11 @@
6766
<PackageReference Include="ModernWpfUI" Version="0.9.6" />
6867
<PackageReference Include="Hardcodet.NotifyIcon.Wpf" Version="1.1.0" />
6968
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
69+
<PackageReference Include="NAudio.Wasapi" Version="2.1.0" />
7070
<PackageReference Include="System.IO.Abstractions" Version="17.2.3" />
7171
<PackageReference Include="System.Management" Version="6.0.0" />
7272
<PackageReference Include="YamlDotNet" Version="12.0.1" />
7373
<PackageReference Include="SharpVectors" Version="1.8.0" />
74-
<PackageReference Include="vccli.net" Version="0.2.0" />
7574
</ItemGroup>
7675

7776
<ItemGroup>

src/GenshinWoodmen/Properties/PublishProfiles/FolderProfile.pubxml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
1111
<_TargetId>Folder</_TargetId>
1212
<TargetFramework>net6.0-windows10.0.18362.0</TargetFramework>
1313
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
14-
<SelfContained>true</SelfContained>
14+
<SelfContained>false</SelfContained>
1515
<PublishSingleFile>true</PublishSingleFile>
1616
<PublishReadyToRun>false</PublishReadyToRun>
17-
<PublishTrimmed>false</PublishTrimmed>
1817
</PropertyGroup>
1918
</Project>

src/GenshinWoodmen/Properties/PublishProfiles/FolderProfile.pubxml.user

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
44
-->
55
<Project>
66
<PropertyGroup>
7-
<History>True|2022-09-30T22:51:21.1199082Z;True|2022-10-01T06:49:50.2260487+08:00;True|2022-09-27T00:48:36.4543383+08:00;True|2022-09-27T00:45:40.0714849+08:00;True|2022-09-20T01:34:35.4747125+08:00;True|2022-09-20T00:59:45.4472326+08:00;True|2022-09-20T00:53:40.0030455+08:00;True|2022-09-17T22:56:07.6833129+08:00;True|2022-09-17T22:50:22.5255257+08:00;True|2022-09-17T22:50:04.6387586+08:00;True|2022-09-17T22:23:00.6778373+08:00;True|2022-09-17T22:19:12.8040412+08:00;True|2022-09-17T22:10:52.6730553+08:00;True|2022-09-17T21:02:34.6673893+08:00;True|2022-09-17T20:55:40.7716679+08:00;True|2022-09-17T20:53:34.4769834+08:00;True|2022-09-17T19:33:35.2879327+08:00;True|2022-09-17T19:32:52.1931963+08:00;True|2022-09-17T19:09:57.9903567+08:00;False|2022-09-17T19:09:48.4994431+08:00;True|2022-09-17T19:06:55.4469036+08:00;False|2022-09-17T19:06:49.2072619+08:00;True|2022-09-17T19:05:45.0822595+08:00;True|2022-09-16T04:52:33.1022628+08:00;True|2022-09-16T01:54:27.8788086+08:00;True|2022-09-16T01:40:07.0858068+08:00;True|2022-09-16T01:10:48.9408972+08:00;True|2022-09-16T00:45:11.9914517+08:00;</History>
7+
<History>True|2022-10-27T16:18:38.9125193Z;True|2022-10-28T00:17:13.7946722+08:00;True|2022-10-01T06:51:21.1199082+08:00;True|2022-10-01T06:49:50.2260487+08:00;True|2022-09-27T00:48:36.4543383+08:00;True|2022-09-27T00:45:40.0714849+08:00;True|2022-09-20T01:34:35.4747125+08:00;True|2022-09-20T00:59:45.4472326+08:00;True|2022-09-20T00:53:40.0030455+08:00;True|2022-09-17T22:56:07.6833129+08:00;True|2022-09-17T22:50:22.5255257+08:00;True|2022-09-17T22:50:04.6387586+08:00;True|2022-09-17T22:23:00.6778373+08:00;True|2022-09-17T22:19:12.8040412+08:00;True|2022-09-17T22:10:52.6730553+08:00;True|2022-09-17T21:02:34.6673893+08:00;True|2022-09-17T20:55:40.7716679+08:00;True|2022-09-17T20:53:34.4769834+08:00;True|2022-09-17T19:33:35.2879327+08:00;True|2022-09-17T19:32:52.1931963+08:00;True|2022-09-17T19:09:57.9903567+08:00;False|2022-09-17T19:09:48.4994431+08:00;True|2022-09-17T19:06:55.4469036+08:00;False|2022-09-17T19:06:49.2072619+08:00;True|2022-09-17T19:05:45.0822595+08:00;True|2022-09-16T04:52:33.1022628+08:00;True|2022-09-16T01:54:27.8788086+08:00;True|2022-09-16T01:40:07.0858068+08:00;True|2022-09-16T01:10:48.9408972+08:00;True|2022-09-16T00:45:11.9914517+08:00;</History>
88
<LastFailureDetails />
99
</PropertyGroup>
1010
</Project>

src/GenshinWoodmen/Views/MainWindow.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
99
xmlns:main="clr-namespace:GenshinWoodmen"
1010
xmlns:local="clr-namespace:GenshinWoodmen.Views"
11-
Name="Self"
1211
ShowInTaskbar="False" Topmost="True" ResizeMode="NoResize" Opacity="0" d:Opacity="1"
1312
Icon="../Resources/favcion.ico" InputMethod.IsInputMethodEnabled="False"
1413
mc:Ignorable="d" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
1514
WindowStartupLocation="Manual" Title="Genshin Woodmen" Height="50" Width="240"
1615
Left="{Binding Left,Converter={StaticResource AddConverter},ConverterParameter=-240}"
1716
Top="{Binding Top,Converter={StaticResource AddConverter},ConverterParameter=-50}"
18-
RenderOptions.BitmapScalingMode="Fant">
17+
RenderOptions.BitmapScalingMode="Fant"
18+
Name="Self">
1919
<ContentControl.Resources>
2020
<ResourceDictionary>
2121
<SineEase x:Key="FadeInEase" EasingMode="EaseOut"/>

src/packages/vccli.net/README.md

Lines changed: 0 additions & 4 deletions
This file was deleted.
-436 KB
Binary file not shown.

src/packages/vccli.net/nuget_pack.cmd

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/packages/vccli.net/pack/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/packages/vccli.net/pack/Api.cs

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)