Требование:
Я пытаюсь захватить аудио / видео с экрана windows с помощью Пример SharpAPI с аудиотоком Loopback Пример NAudio .
Я использую C#, wpf для достижения того же.
Пара пакетов nuget. SharpAvi - для захвата видео NAudio - для захвата аудио
Что было достигнуто:
Я успешно интегрировал это с предоставленным образцом, и я ' я пытаюсь захватить звук через NAudio
с помощью видеопотока SharpAPI для записи видео вместе с реализацией аудио.
Проблема:
Что бы я ни писал аудиопоток в видео SharpAvi. На выходе, он был записан только с видео и аудио пуст. "output.wav" и был записан со звуком, как и ожидалось, и может слышать записанный звук. Итак, я пока заключаю, что проблема только в интеграции с видео через SharpApi
writterx = new WaveFileWriter("Out.wav", audioSource.WaveFormat);
Полный код для воспроизведения проблемы:
https://drive.google.com/open?id=1H7Ziy_yrs37hdpYriWRF-nuRmmFbsfe-
Проблеск кода из Recorder.cs
Инициализация NAudio:
audioSource = new WasapiLoopbackCapture();
audioStream = CreateAudioStream(audioSource.WaveFormat, encodeAudio, audioBitRate);
audioSource.DataAvailable += audioSource_DataAvailable;
Захват аудио-байтов и запись его в аудиопоток SharpAvi:
private void audioSource_DataAvailable(object sender, WaveInEventArgs e)
{
var signalled = WaitHandle.WaitAny(new WaitHandle[] { videoFrameWritten, stopThread });
if (signalled == 0)
{
audioStream.WriteBlock(e.Buffer, 0, e.BytesRecorded);
audioBlockWritten.Set();
Debug.WriteLine("Bytes: " + e.BytesRecorded);
}
}
Не могли бы вы помочь мне в этом. Любой другой способ выполнить мое требование также приветствуется.
Дайте мне знать, если понадобятся какие-либо дополнительные детали.