Под капотом он вызывает acmFormatSuggest , чтобы попытаться найти способ перехода на PCM.Вы можете фактически установить приоритет в Windows для каждого установленного ACM.Раньше я знал, как добраться до этого в Windows XP, но я не знаю, где Windows 7 хранит аналогичный диалог.Есть способы точно указать, какой драйвер ACM вы хотите использовать, используя acmDriverEnum и acmDriverOpen .
Я реализовал эту возможность для фильтров ACM (то есть эффектов, а не кодеков) с помощью дополнительного конструктора в классе AcmStream
, позволяющего передавать идентификатор драйвера и WaveFilter
.с нулевым WaveFilter и идентификатором драйвера выбранного ACM-кодека, используя AcmDriver.EnumerateAcmDrivers
или AcmDriver.FindByShortName
.Боюсь, я не поместил конструктор на WaveFormatConversionStream
, который позволял бы вам передавать свой собственный AcmDriver
, поэтому вам придется создать свой собственный мод.
Кроме того, что делает MP3сбой, и что за сообщение об ошибке?Это может быть проблема разбора кадра MP3, а не кодека.Кроме того, NAudio имеет альтернативный MP3-декодер кадров - DmoMp3FrameDecompressor
, который может дать лучшие результаты, хотя недоступен в XP.