Захват аудиопотока микрофона с использованием .NET Framework

Мне нужно захватить входной поток из микрофона в моем приложении, который написан на VB.NET. Мне нужно иметь возможность передавать эти данные в файл или через HTTP и, возможно, кодировать его с помощью LAME MP3. Может кто-нибудь помочь мне начать с этого?

Спасибо!

Ответы

Ответ 1

Если вы хотите получить .NET-решение, вы можете проверить NAudio, который является аудио-библиотекой с открытым исходным кодом. Посмотрите класс WaveInStream (или WaveIn в последнем коде). Это позволит вам открыть микрофон и получать события, содержащие последние захваченные байты. Тогда было бы легко перейти к потоку.

Как для кодирования MP3 с использованием LAME, один из подходов, который я видел, используется для передачи звука в lame.exe через stdin и чтения mp3 из stdout. Это, я думаю, проще, чем получить LAME DLL и писать обертки для взаимодействия.

Обновление: Я создал примерный проект, который использует NAudio для записи с микрофона, и LAME для сохранения в формате MP3 в http://voicerecorder.codeplex.com. См. Мою статью в Coding4Fun здесь.

Ответ 2

Возможно, это не самый последний опыт, но я помню, что играл с http://nyxtom.vox.com/library/post/recording-audio-in-c.html

Для более профессиональных вещей вам, вероятно, нужно взглянуть на DirectSound API.

Приветствия.