7

NAudioを使用してmp3からwavに変換するプロジェクトがあります。(WaveFormatConversionStream.CreatePcmStream()メソッドを使用)

開発マシンでは正常に動作しましたが、新しいサーバーで試しているところ、次のエラーがスローされます。

NAudio.MmException:NAudio.Wave.WaveFormatConversionStream.CreatePcmStream (WaveStream sourceStream)のNAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormatcompressedFormat)の
NAudio.MmException.Try(MmResult result、String function)
でacmFormatSuggest
を呼び出すNoDriver

ここでは、新しいサーバーではなく、NAudioが必要とする依存関係があると思います。それは何で、どこからインストールすればよいですか?

サーバーは、「Webサーバー」と「アプリサーバー」の役割がインストールされた、ハッチングされたばかりのAmazon EC2 Windows200832ビットインスタンスです。

4

3 に答える 3

7

Windows 2008 R2を実行し、Naudioを使用してWavファイルとMp3ファイルの長さを検出すると、同じ問題が発生しました。

私はこれに従うことでこれを解決しました:https ://technet.microsoft.com/en-us/library/cc772567.aspx

基本的に、「デスクトップエクスペリエンス」機能をインストールします。

上記の場合、サーバーを再起動する必要があります。

上記をインストールしたら、それ以上何も有効にする必要はありませんでした。問題は解決しました。

于 2016-02-25T21:31:27.407 に答える
2

WaveFormatConversionStreamは、マシンにインストールされているACMコーデックを利用します。まず、ソースからターゲット形式に変換できるACMコーデックがインストールされているかどうかを確認します。ターゲットマシンにMP3コーデックがないようです。

NAudioは、DMO MP3デコーダー(DirectX Media Object)を使用して、MP3をデコードする別の方法を提供します。これは、ターゲットマシン上にある場合もあります。これを使用するには、Codeplexから最新のNAudioソースを取得する必要があり、MP3FileReader(これでPCMへの変換が行われます)で、次の行を使用します。

decompressor = new AcmMp3FrameDecompressor(this.Mp3WaveFormat); 

と置き換えます

decompressor = new DmoMp3FrameDecompressor(this.Mp3WaveFormat); 
于 2011-04-14T06:10:40.627 に答える
0

@Shiroyのおかげで、@ MarkHeathによる素晴らしいNLayer(https://github.com/naudio/NLayer)ライブラリを見つけました。NLayer.NAudioSupportを使用してインストールする場合は、追加の1行のコードで圧縮できます(インストールされたコーデックは必要ありません)。

于 2017-08-12T14:19:35.750 に答える