В общем то, детали вопроса можно увидеть здесь (
Какая есть бесплатная библиотека на C# для воспроизведения и записи аудио на Linux+Windows?), наиболее конкретный вопрос - как получить список микрофонов через C#, получилось через NAudio, PvRecorder, однако это не работает на Astra Linux
Звукозапись через libVlcSharp
LibVLCSharp.Shared.Core.Initialize();
_libVLC = new LibVLC();
mediaPlayer = new MediaPlayer(_libVLC);
_media = new Media(_libVLC, "dshow://", FromType.FromLocation);
string tempDir = Path.GetTempPath();
FileName = "record" + DateTime.Now.Ticks + ".mp3";
FilePath = Path.Combine(tempDir, FileName);
_media.AddOption($@":dshow-adev={SelectedSource}");
_media.AddOption(
$@":sout=#transcode{{acodec=mp3,ab=512,channels=2,samplerate=44100}}:file{{dst={FilePath}}}");
_media.AddOption(":sout-keep");
mediaPlayer.Play(_media);
Воспроизведение звука
_media = new Media(_libVLC, new Uri(FilePath));
mediaPlayer = new MediaPlayer(_media);
mediaPlayer.EndReached += MediaEndReached;
mediaPlayer.Play();
IsPlaying = true;
Для записи звука нужен SelectedSource, который как раз таки должен был объявляться в конструкторе класса, попробовал PvRecorder - работает что надо, НО на AstraLinux не идет, NAudio - так же. Попробовал через libVlcSharp, но увы получил это и не знаю, что я мог бы с этим сделать