|
@@ -137,14 +137,16 @@ public class LinuxAudioService : IAudioService
|
|
|
|
|
|
|
|
public class WindowsAudioService : IAudioService
|
|
public class WindowsAudioService : IAudioService
|
|
|
{
|
|
{
|
|
|
- private NAudio.Wave.WaveOut? _waveOut;
|
|
|
|
|
|
|
+ private NAudio.Wave.WaveOutEvent? _waveOut;
|
|
|
|
|
|
|
|
public List<AudioDevice> GetOutputDevices()
|
|
public List<AudioDevice> GetOutputDevices()
|
|
|
{
|
|
{
|
|
|
var list = new List<AudioDevice>();
|
|
var list = new List<AudioDevice>();
|
|
|
- for (int i = 0; i < NAudio.Wave.WaveOut.DeviceCount; i++)
|
|
|
|
|
|
|
+ int count = NAudio.Wave.WaveInterop.waveOutGetNumDevs();
|
|
|
|
|
+ int size = System.Runtime.InteropServices.Marshal.SizeOf<NAudio.Wave.WaveOutCapabilities>();
|
|
|
|
|
+ for (int i = 0; i < count; i++)
|
|
|
{
|
|
{
|
|
|
- var caps = NAudio.Wave.WaveOut.GetCapabilities(i);
|
|
|
|
|
|
|
+ NAudio.Wave.WaveInterop.waveOutGetDevCaps((IntPtr)i, out var caps, size);
|
|
|
list.Add(new AudioDevice(i, caps.ProductName));
|
|
list.Add(new AudioDevice(i, caps.ProductName));
|
|
|
}
|
|
}
|
|
|
return list;
|
|
return list;
|
|
@@ -153,9 +155,9 @@ public class WindowsAudioService : IAudioService
|
|
|
public List<AudioDevice> GetInputDevices()
|
|
public List<AudioDevice> GetInputDevices()
|
|
|
{
|
|
{
|
|
|
var list = new List<AudioDevice>();
|
|
var list = new List<AudioDevice>();
|
|
|
- for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++)
|
|
|
|
|
|
|
+ for (int i = 0; i < NAudio.Wave.WaveInEvent.DeviceCount; i++)
|
|
|
{
|
|
{
|
|
|
- var caps = NAudio.Wave.WaveIn.GetCapabilities(i);
|
|
|
|
|
|
|
+ var caps = NAudio.Wave.WaveInEvent.GetCapabilities(i);
|
|
|
list.Add(new AudioDevice(i, caps.ProductName));
|
|
list.Add(new AudioDevice(i, caps.ProductName));
|
|
|
}
|
|
}
|
|
|
return list;
|
|
return list;
|
|
@@ -188,7 +190,7 @@ public class WindowsAudioService : IAudioService
|
|
|
reader = wave;
|
|
reader = wave;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- _waveOut = new NAudio.Wave.WaveOut { DeviceNumber = deviceIndex };
|
|
|
|
|
|
|
+ _waveOut = new NAudio.Wave.WaveOutEvent { DeviceNumber = deviceIndex };
|
|
|
_waveOut.Init(reader);
|
|
_waveOut.Init(reader);
|
|
|
_waveOut.Play();
|
|
_waveOut.Play();
|
|
|
}
|
|
}
|