В моем случае я получил ошибку, когда у меня было мое веб-приложение в 4.5.2 и ссылочные классы в 4.6.1. Когда я обновил версию веб-приложения до версии 4.5.2, ошибка исчезла.
Если Вы хотите решение.NET, можно проверить NAudio, который является аудио библиотекой с открытым исходным кодом. Посмотрите WaveInStream
класс (или WaveIn
в последнем коде). Это позволит Вам открыть микрофон и получить события, содержащие последние полученные байты. Это было бы довольно легко затем перейти к потоку.
Что касается кодирования MP3 с помощью ЛАМЕ, одного подхода я видел используемый, должен передать аудио lame.exe через stdin и считать mp3 из stdout. Это, я думаю легче, чем овладение ХРОМЫМ DLL и запись interop обертки для него.
Обновление: я создал проект в качестве примера, который использует NAudio для записи от микрофона и ЛАМЕ для сохранения как MP3 в http://voicerecorder.codeplex.com . См. мою статью в Coding4Fun здесь .
Возможно, не последний опыт, но я помню, что играл с http://nyxtom.vox.com/library/post/recording-audio-in-c.html
Для более профессиональных вещей, вероятно, необходимо смотреть на DirectSound API.
Аплодисменты.