1

圧縮された wav ファイル (たとえば MPEG コーデックですが、インストールされている任意のコーデックを使用できます) を圧縮されていない wav ファイル (16 ビット PCM) にプログラムで変換する最も簡単な方法は何ですか?

direct show を使用してネイティブ C++ でコードを記述すればできると聞いたことがありますが、direct show の経験はあまりありません。

これを行う簡単な方法はありますか?C# が理想的ですが、C++ も問題ありません。

4

2 に答える 2

2

Windowsについて話していると仮定すると、DirectShowはおそらくデコードを行うための最良の方法です。DirectShowはCOMAPIであるため、ネイティブC ++ COMコードを記述したり、利用可能なDirectShow .Netラッパーの1つを使用したり、C ++/CLIを使用したりできます。どちらを選択するかは、アプリケーションアーキテクチャの残りの部分によって異なります。.Netを使用する必要がある場合は、C ++/CLIが間違いなく最も簡単なルートです。達成しようとしていることについて、もう少し具体的にする必要があります。たとえば、MPEG自体はコーデックではありません。標準を定義するだけです。

于 2009-01-20T15:41:44.617 に答える
1

NAudioを使用して PC にインストールされている任意の ACM コーデックを使用して、C# で WAV ファイルを解凍できます。サンプルコードは次のとおりです。

using (WaveFileReader reader = new WaveFileReader(inputFileName))
{
    using (WaveStream convertedStream = 
        WaveFormatConversionStream.CreatePcmStream(reader))
    {
        WaveFileWriter.CreateWaveFile(outputFileName, convertedStream);
    }
}
于 2009-01-21T11:32:52.417 に答える