|
|
|
@ -53,6 +53,11 @@ public class AudioHelper
|
|
|
|
|
{
|
|
|
|
|
deviceCollection.Item(d, out var device);
|
|
|
|
|
|
|
|
|
|
if(device == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Guid iid = typeof(IAudioSessionManager2).GUID;
|
|
|
|
|
device.Activate(ref iid, CLSCTX.ALL, IntPtr.Zero, out var m);
|
|
|
|
|
var manager = (IAudioSessionManager2)m;
|
|
|
|
@ -61,6 +66,11 @@ public class AudioHelper
|
|
|
|
|
|
|
|
|
|
manager.GetSessionEnumerator(out var sessionEnumerator);
|
|
|
|
|
|
|
|
|
|
if(sessionEnumerator == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var currentIndex = int.MaxValue;
|
|
|
|
|
|
|
|
|
|
sessionEnumerator.GetCount(out var count);
|
|
|
|
@ -68,6 +78,11 @@ public class AudioHelper
|
|
|
|
|
{
|
|
|
|
|
sessionEnumerator.GetSession(i, out var session);
|
|
|
|
|
|
|
|
|
|
if(session == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
session.GetProcessId(out var sessionProcessId);
|
|
|
|
|
var audioProcess = GetProcessById(sessionProcessId);
|
|
|
|
|
|
|
|
|
@ -241,6 +256,11 @@ public class AudioHelper
|
|
|
|
|
{
|
|
|
|
|
deviceCollection.Item(d, out var device);
|
|
|
|
|
|
|
|
|
|
if(device == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Guid iid = typeof(IAudioSessionManager2).GUID;
|
|
|
|
|
device.Activate(ref iid, CLSCTX.ALL, IntPtr.Zero, out var m);
|
|
|
|
|
var manager = (IAudioSessionManager2)m;
|
|
|
|
@ -248,11 +268,21 @@ public class AudioHelper
|
|
|
|
|
|
|
|
|
|
manager.GetSessionEnumerator(out var sessionEnumerator);
|
|
|
|
|
|
|
|
|
|
if(sessionEnumerator == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sessionEnumerator.GetCount(out var count);
|
|
|
|
|
for (int i = 0; i < count; i++)
|
|
|
|
|
{
|
|
|
|
|
sessionEnumerator.GetSession(i, out var session);
|
|
|
|
|
|
|
|
|
|
if(session == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var volume = (ISimpleAudioVolume)session;
|
|
|
|
|
var guid = Guid.Empty;
|
|
|
|
|
volume.SetMasterVolume(1, ref guid);
|
|
|
|
@ -271,6 +301,10 @@ public class AudioHelper
|
|
|
|
|
{
|
|
|
|
|
deviceCollection.Item(d, out var device);
|
|
|
|
|
|
|
|
|
|
if(device == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Guid iid = typeof(IAudioSessionManager2).GUID;
|
|
|
|
|
device.Activate(ref iid, CLSCTX.ALL, IntPtr.Zero, out var m);
|
|
|
|
@ -279,11 +313,21 @@ public class AudioHelper
|
|
|
|
|
|
|
|
|
|
manager.GetSessionEnumerator(out var sessionEnumerator);
|
|
|
|
|
|
|
|
|
|
if(sessionEnumerator == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sessionEnumerator.GetCount(out var count);
|
|
|
|
|
for (int i = 0; i < count; i++)
|
|
|
|
|
{
|
|
|
|
|
sessionEnumerator.GetSession(i, out var session);
|
|
|
|
|
|
|
|
|
|
if(session == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (session.IsSystemSoundsSession() == 0)
|
|
|
|
|
{
|
|
|
|
|
return new SystemSoundsAudioSession(session);
|
|
|
|
@ -388,6 +432,11 @@ public class AudioHelper
|
|
|
|
|
{
|
|
|
|
|
deviceCollection.Item(d, out var device);
|
|
|
|
|
|
|
|
|
|
if(device == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Guid iid = typeof(IAudioSessionManager2).GUID;
|
|
|
|
|
device.Activate(ref iid, CLSCTX.ALL, IntPtr.Zero, out var m);
|
|
|
|
|
var manager = (IAudioSessionManager2)m;
|
|
|
|
@ -396,10 +445,21 @@ public class AudioHelper
|
|
|
|
|
|
|
|
|
|
manager.GetSessionEnumerator(out var sessionEnumerator);
|
|
|
|
|
|
|
|
|
|
if(sessionEnumerator == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sessionEnumerator.GetCount(out var count);
|
|
|
|
|
for (int i = 0; i < count; i++)
|
|
|
|
|
{
|
|
|
|
|
sessionEnumerator.GetSession(i, out var session);
|
|
|
|
|
|
|
|
|
|
if(session == null)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
session.GetDisplayName(out var displayName);
|
|
|
|
|
session.GetProcessId(out var sessionProcessId);
|
|
|
|
|
|
|
|
|
|