Для воспроизведения аудио с использованием C # в какой-то момент управляемый код должен будет вызывать неуправляемые API. NAudio предоставляет оболочки для четырех различных API-интерфейсов воспроизведения звука Windows . WaveOut будет наиболее подходящим выбором для вас, поскольку он не основан на COM.
Для декодирования MP3 у вас есть выбор использования кодеков, поставляемых с Windows, или попытка найти полностью управляемый декодер MP3. NAudio предоставляет оболочки взаимодействия для двух разных декодеров Windows MP3: кодек Fraunhofer ACM, который поставляется с Windows XP и выше, и декодер DirectX Media Object, который поставляется с Windows Vista и выше. Если вам нужен полностью управляемый MP3-декодер, вы можете попробовать NLayer , который я сделал из JavaLayer для .NET, хотя его публичный API в настоящее время не позволяет аккуратно устанавливать его в слот в приложение NAudio.