Запись звука с гарнитуры - PullRequest
       16

Запись звука с гарнитуры

3 голосов
/ 06 октября 2011

Я использовал код в http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html для записи звука.В основном этот код:

WaveIn waveInStream;
WaveFileWriter writer;

waveInStream = new WaveIn(44100,2);
writer = new WaveFileWriter(outputFilename, waveInStream.WaveFormat);

waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
waveInStream.StartRecording();

Он отлично работает и записывает каждый звук в системе.Проблема возникает, когда я подключаю гарнитуру (не USB, а просто к разъему для гарнитуры встроенной звуковой карты на моем ноутбуке).Это приводит к тому, что любой звук, который я слышу в гарнитуре, не записывается.Я думаю, что это как-то связано с тем устройством, с которого я записываю, но я не могу понять это.

Я пытаюсь записать разговор, что означает, что я хотел бы записать звук, который приходитот микрофона и звука, который я слышу в гарнитуре одновременно.

Может ли кто-нибудь указать мне правильное направление для этого?Благодаря.

1 Ответ

2 голосов
/ 31 октября 2011
// Get default capturer
waveInStream = new WaveIn(44100,2);

Теперь, если вы подключите микрофон / динамик гарнитуры, Windows обнаружит его, но ваша программа по-прежнему будет использовать старую конечную точку по умолчанию.Не последнее добавленное устройство.Это должно быть обновлено.

Одним из решений будет опрос конечных точек и выяснение, было ли добавлено какое-либо новое (по умолчанию) устройство в систему, а затем остановка начала записи с новым устройством.

waveInStream.StopRecording();
// assign the default recording device if not already done
//waveInStream.DeviceNumber = 0;
waveInStream.StartRecording();

Дайте мне знать, если я не очень ясно объяснил.

...