Как считать файл Wav в массив байт - C#
Формулировка задачи:
Добрый день дорогие.
Подскажите пожалуйста, как считать wav файл в byte.
Выглядит это вот так Буду очень признателен за информативный ответ.
byte[] buffer = ReadDataFromExternalSource(); // читаем данные откуда-нибудь
Решение задачи: «Как считать файл Wav в массив байт»
textual
Листинг программы
double[] readAmplitudeValues(bool isBigEndian)
{
var file = System.IO.File.OpenRead("golos.WAV");
int MSB, LSB; // старший и младший байты
byte[] buffer = new byte[file.Length];//Читаем данные откуда-нибудь
file.Read(buffer, 0, buffer.Length);
double[] data = new double[buffer.Length / 2];
for (int i = 0; i < buffer.Length; i += 2)
{
if (isBigEndian) // задает порядок байтов во входном сигнале
{
// первым байтом будет MSB
MSB = buffer[2 * i];
// вторым байтом будет LSB
LSB = buffer[2 * i + 1];
}
else
{
// наоборот
LSB = buffer[2 * i];
MSB = buffer[2 * i + 1];
}
// склеиваем два байта, чтобы получить 16-битное вещественное число
// все значения делятся на максимально возможное - 2^15
data[i] = ((MSB << 8) | LSB) / 32768;
}
return data;
}