圧縮された wav ファイル (たとえば MPEG コーデックですが、インストールされている任意のコーデックを使用できます) を圧縮されていない wav ファイル (16 ビット PCM) にプログラムで変換する最も簡単な方法は何ですか?
direct show を使用してネイティブ C++ でコードを記述すればできると聞いたことがありますが、direct show の経験はあまりありません。
これを行う簡単な方法はありますか?C# が理想的ですが、C++ も問題ありません。
圧縮された wav ファイル (たとえば MPEG コーデックですが、インストールされている任意のコーデックを使用できます) を圧縮されていない wav ファイル (16 ビット PCM) にプログラムで変換する最も簡単な方法は何ですか?
direct show を使用してネイティブ C++ でコードを記述すればできると聞いたことがありますが、direct show の経験はあまりありません。
これを行う簡単な方法はありますか?C# が理想的ですが、C++ も問題ありません。
Windowsについて話していると仮定すると、DirectShowはおそらくデコードを行うための最良の方法です。DirectShowはCOMAPIであるため、ネイティブC ++ COMコードを記述したり、利用可能なDirectShow .Netラッパーの1つを使用したり、C ++/CLIを使用したりできます。どちらを選択するかは、アプリケーションアーキテクチャの残りの部分によって異なります。.Netを使用する必要がある場合は、C ++/CLIが間違いなく最も簡単なルートです。達成しようとしていることについて、もう少し具体的にする必要があります。たとえば、MPEG自体はコーデックではありません。標準を定義するだけです。
NAudioを使用して PC にインストールされている任意の ACM コーデックを使用して、C# で WAV ファイルを解凍できます。サンプルコードは次のとおりです。
using (WaveFileReader reader = new WaveFileReader(inputFileName))
{
using (WaveStream convertedStream =
WaveFormatConversionStream.CreatePcmStream(reader))
{
WaveFileWriter.CreateWaveFile(outputFileName, convertedStream);
}
}