Если вам нужно решение .NET, вы можете проверить NAudio , которая является аудио библиотекой с открытым исходным кодом. Посмотрите на класс WaveInStream
(или WaveIn
в последнем коде). Это позволит вам открыть микрофон и получать события, содержащие последние захваченные байты. Это было бы довольно легко, затем перейти к потоку.
Что касается кодирования MP3 с использованием LAME, я использовал один из подходов, который заключается в передаче звука в lame.exe через stdin и считывании mp3 из stdout. Я думаю, что это проще, чем получить LAME DLL и написать для нее оболочки взаимодействия.
Обновление: Я создал пример проекта, который использует NAudio для записи с микрофона и LAME для сохранения в формате MP3 на http://voicerecorder.codeplex.com. См. Мою статью на Coding4Fun здесь .