FileStreamを使用してWAVファイルからBitsPerSampleを抽出しようとしています。このソースによれば、WAV offset Tableによれば、BitsPerSampleはオフセット35に位置し、2バイト長である。RIFF WAVファイルからBitsPerSampleを抽出する
これは、それを抽出しようとしているために私のコードです:私はWAVファイルでこれを使用するとき
public int getBitsPerSample()
{
int bitsPerSample;
using (var f = File.OpenRead(wavPath))
{
f.Seek(35,SeekOrigin.Begin);
byte[] val = new byte[2];
f.Read(val,0,2);
bitsPerSample = BitConverter.ToInt16(val,0);
}
return bitsPerSample;
}
は、今私は16ビットである知っている、私は25600のは、bitsPerSampleを取得しますか?私の疑惑が確認されたte WAVファイルを見るために16進エディタを使用したとき、2バイトは実際には0x22のオフセットにあり、 "d a t a"と表示されます。別の16ビットWAVファイルを調べると、これが確認されました。
0x22で検索すると2のビットサンプルが得られましたが、これも正しくありません。
すでに誰かが問題を知っていれば、それはすばらしいことですが、必要に応じて情報を追加し続けるつもりです。私は、バイナリエディタで32ビットのWAVファイルを開いたとき、私は私のソース、および私の最後の結果から、再び完全に異なっているオフセットの0x4E、では、bitsPerSampleを見つけ
...