使用 imovie 导出的 wav 时出现 Naudio“NoDriver 调用 acmFormatSuggest”错误

sjo*_*urg 6 c# wav imovie naudio

我正在尝试将 .wav 转换为 .mp3 文件。我的代码通常可以工作,但现在我得到了一个使用 Imovie 导出的 .wav 文件,并且收到错误“NoDriver 调用 acmFormatSuggest”。

互联网表明我的机器缺少编解码器。但是如果我运行该文件,我的机器能够使用标准 Windows 媒体播放器播放该文件,所以我猜它在我的机器上。

当我将文件放入https://www.metadata2go.com/时,我可以看到有问题的文件的编解码器 pcm_s24le 的采样率为 48000。

当我使用相同的编解码器 pcm_s24le 但采样率为 44100 创建文件时,代码不会触发此错误。所以问题似乎出在组合编解码器 - 采样率上。

Naudio 的 github 页面引用了此页面,并提供了修复错误的指南。它在选项 5 下说(在我的示例中我只播放 wav 文件)

您需要做的是在网络上搜索可以解码您正在使用的格式的 ACM 编解码器。不幸的是,这并不总是一个简单的过程,

不幸的是,它没有提供有关如何或在哪里找到这些编解码器的任何帮助。而且,由于我能够播放该文件,并且具有不同采样率的相同编解码器工作正常,因此我也不确定这是否是实际问题。

我的代码在 Windows 11 pro v21H2 上运行。

以下基本代码(这不是我的转换代码)会引发错误

var outputDevice = new WaveOutEvent();
var audioFile = new AudioFileReader(path);
outputDevice.Init(audioFile);
outputDevice.Play();
Run Code Online (Sandbox Code Playgroud)

打开 wav 文件并以不同的采样率保存它似乎可以解决问题,但这是我宁愿不做的体力劳动,因为在我的情况下可能有很多文件需要转换。

任何想法,将不胜感激。

Sam*_*erg 0

看起来 Naudio 有组件可以对 .WAV 文件进行重新采样,如本页所述:如何使用 NAudio 重新采样音频