Дополнительно
Как прочитать данные в wav-файл в массив
Мне нужно получить все образцы wav-файл в массив (или два, если вы должны сделать это, чтобы сохранить стерео), так что я могу применить некоторые изменения в них. Мне было интересно, если это легко сделать (желательно без внешних библиотек). У меня нет опыта с чтением в звуковых файлах, так что я Дон'т много знаю о предмете.
29
7
Этот код должен делать трюк. Он преобразует звуковой файл в нормированной двойной массив (-1 до 1), но это должно быть тривиальным, чтобы сделать его инт/короткое время вместо (удалить
/32768.0 бит и добавьте вместо 32768). Массива
прямо [] будет присвоено значение NULL, если загруженный файл WAV будет моно.Я могу'т утверждают, что это's полностью пуленепробиваемый (потенциал от-за одной ошибки), но после создания 65536 пример массива, и создает волну от -1 до 1, ни один из образцов не появляются, чтобы пойти 'через' на потолке или полу.
Предполагая, что ваш wav файл содержит 16 бит PCM (который является наиболее распространенным), вы можете использовать NAudio, Чтобы прочитать его в массив байтов, а затем скопировать его в массив 16-разрядных целых чисел для удобства. Если это стерео, образцы будут чередоваться влево, вправо.
Я знаю, что вы хотели избегать сторонних библиотек, но если вы хотите быть уверены, чтобы справиться с WAV-файлы с дополнительными кусками, я предлагаю избегать подходов, как раз ищу 44 байт в файл.
Wav-файлы (по крайней мере, несжатых) довольно просты. Там'с головой, то данные следует за ним.
Здесь's в Большая ссылка: <удар>https://ccrma.stanford.edu/courses/422/projects/WaveFormat/</удара> (mirror)
На момент написания статьи никто не обратился 32-разрядная или 64-разрядная кодировка WAV, снятые.
Следующий код обрабатывает 16/32/64 бит и моно/стерео:
http://hourlyapps.blogspot.com/2008/07/open-source-wave-graph-c-net-control.html<БР> здесь является управление, которое дисплея's в спектре файл WAV ,который также служит байт[] декодированного wav-файла, где вы можете играть и/или изменения их значений .
Просто скачать контроль и он'ы довольно хорошо для WAV манипуляция файла.
Чтобы получить wav-файл в массив, вы можете просто сделать это:
Byte[] данные = файл.ReadAllBytes("в путь" - а);
но как Флетч сказал, что вам нужно выделить данные из заголовков. Она должна быть простой офсетной.
Попробуйте воспроизвести аудио данные из массива]1