Properly instantiate ASIO recording

This commit is contained in:
Mercurio 2024-09-09 21:12:20 +02:00
parent 390dc02117
commit f62c51729f

View file

@ -3,8 +3,7 @@ using System.Net.WebSockets;
using System.Text;
using NAudio.CoreAudioApi;
using NAudio.Wave;
using NAudio.Wave.Asio;
using System.IO;
#pragma warning disable CA1416
namespace _2dxAutoClip
{
@ -220,7 +219,12 @@ namespace _2dxAutoClip
{
if (_useAsio)
{
StartAsioAudioRecording(songName);
var staThread = new Thread(() =>
{
StartAsioAudioRecording(songName);
});
staThread.SetApartmentState(ApartmentState.STA);
staThread.Start();
}
else
{
@ -228,6 +232,7 @@ namespace _2dxAutoClip
}
}
private static void StartWasapiAudioRecording(string songName)
{
try
@ -261,7 +266,7 @@ namespace _2dxAutoClip
Directory.CreateDirectory(Path.GetDirectoryName(_audioFilePath)!);
_asioSource = new AsioOut(0);
_asioSource.InitRecordAndPlayback(null, 2, 48000);
_asioSource.InitRecordAndPlayback(null, 0, 48000);
_writer = new WaveFileWriter(_audioFilePath, new WaveFormat(44100, 16, 2));