Захват аудиопотока с микрофона с помощью .NET Framework - PullRequest
15 голосов
/ 04 февраля 2009

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

Спасибо!

Ответы [ 2 ]

24 голосов
/ 04 февраля 2009

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

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

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

1 голос
/ 04 февраля 2009

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

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

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

...