Как считать файл 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;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы