32 ビットのステレオ WAV を 16 ビットのモノ WAV に変換しようとしています。私は naudio を使用してサウンドをキャプチャし、より重要な 4 バイトのうちの 2 バイトだけを使用するとうまくいくと考えました。
DataAvailable の実装は次のとおりです。
void _waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
byte[] newArray = new byte[e.BytesRecorded / 2];
short two;
for (int i = 0, j = 0; i < e.BytesRecorded; i = i + 4, j = j + 2)
{
two = (short)BitConverter.ToInt16(e.Buffer, i + 2);
newArray[j] = (byte)(two & 0xFF);
newArray[j + 1] = (byte)((two >> 8) & 0xFF);
}
//do something with the new array:
}
どんな助けでも大歓迎です!