Код: Выделить всё
var outputFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "NAudio");
Directory.CreateDirectory(outputFolder);
var outputFilePath = Path.Combine(outputFolder, "recorded.pcm");
var loopback = new WasapiLoopbackCapture();
var fileWriter = new WaveFileWriter(outputFilePath, loopback.WaveFormat);
loopback.RecordingStopped += (s, a) => { fileWriter.Dispose(); };
loopback.DataAvailable += (object? sender, WaveInEventArgs args) =>
{
fileWriter.Write(args.Buffer, 0, args.BytesRecorded);
};
На большинстве устройств это работает хорошо, и созданный файл содержит звук, который воспроизводится на устройстве, независимо от того, отключены динамики или нет.
Но есть некоторые устройства, в которых, когда динамики отключены, звук принимается, и, следовательно, содержимое файла представляет собой просто тишину.
Я не уверен, что происходит и как это решить, Я пробовал обновить драйверы и создать свою собственную версию WasapiLoopbackCapture для смены аудиоустройств и т. д., но на данный момент ничего не работает.
Кто-нибудь знает, что здесь происходит и как я могу добиться этого на всех устройствах?
Вот пример устройства, на котором происходит плохое поведение:
Код: Выделить всё
ACER Aspire 3 A315-23-R8T0
Windows 10 Pro 22H2 Build 19045.3208
Realtek(R) Audio
Driver Provider: Microsoft
Driver Version: 10.0.19041.1
Подробнее здесь: https://stackoverflow.com/questions/767 ... rs-are-mut
Мобильная версия