waveファイルのビットレートを変更したい。
ネットで検索したところ、waveファイルには長さ44バイトのヘッダーが含まれており、25、26、27、28バイトはwaveファイルのビットレートを格納するために使用されていることがわかりました
そのため、波を取得してバイト配列に保存し、波のビットレートを保存するために使用されたバイトの値を変更します。
コードは次のとおりです。
private int sampleRate;
private byte[] ByteArr;
private MemoryStream ByteMem;
ByteArr = null;
ByteMem = null;
ByteArr = File.ReadAllBytes(pathOfWav.Text);
sampleRate = BitConverter.ToInt32(ByteArr, 24) * 2;
Array.Copy(BitConverter.GetBytes(sampleRate), 0, ByteArr, 24, 4);
ByteMem = new MemoryStream(ByteArr);
ここpathOfWav.Text
では、textBox である Wave ファイルの場所を保存し、Wave ファイルのすべてのバイトを保存してByteArr
から、4 バイト (25 から 28) を Int32 に変換し、それを 2 倍して音声の速度を上げて保存しました。その後、 Bit Rate の新しい値で前sampleRate
のものを変更し、新しい MemoryStream をインスタンス化します。ByteArr
sampleRate
私の質問は、Naudio を使用して新しい Wave ストリームを再生する方法ですか???