Как считать файл Wav в массив байт - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день дорогие. Подскажите пожалуйста, как считать wav файл в byte. Выглядит это вот так
Листинг программы
  1. byte[] buffer = ReadDataFromExternalSource(); // читаем данные откуда-нибудь
Буду очень признателен за информативный ответ.

Решение задачи: «Как считать файл Wav в массив байт»

textual
Листинг программы
  1. double[] readAmplitudeValues(bool isBigEndian)
  2.         {
  3.             var file = System.IO.File.OpenRead("golos.WAV");
  4.             int MSB, LSB; // старший и младший байты
  5.             byte[] buffer = new byte[file.Length];//Читаем данные откуда-нибудь
  6.             file.Read(buffer, 0, buffer.Length);
  7.             double[] data = new double[buffer.Length / 2];
  8.  
  9.             for (int i = 0; i < buffer.Length; i += 2)
  10.             {
  11.                 if (isBigEndian) // задает порядок байтов во входном сигнале
  12.                 {
  13.                     // первым байтом будет MSB
  14.                     MSB = buffer[2 * i];
  15.                     // вторым байтом будет LSB
  16.                     LSB = buffer[2 * i + 1];
  17.                 }
  18.                 else
  19.                 {
  20.                     // наоборот
  21.                     LSB = buffer[2 * i];
  22.                     MSB = buffer[2 * i + 1];
  23.                 }
  24.                 // склеиваем два байта, чтобы получить 16-битное вещественное число
  25.                 // все значения делятся на максимально возможное - 2^15
  26.                 data[i] = ((MSB << 8) | LSB) / 32768;
  27.             }
  28.             return data;
  29.         }

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


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

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

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы