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