вторник, 26 января 2010 г.

Доктор WAV

Доктор WAV
Где-то в Интернете видел программу, которая занимается лечением заголовков wav-файлов, исправляя ошибочные данные. Сегодня попробуем сделать подобную, тем более что компонент WaveHeader я переделал, исправил ошибки и сделал более удобным.

Прежде всего ссылка на новый компонент - WavHeader 2.0. Теперь компоненту не нужен файловый поток - ему нужно только имя файла. И заголовок записывается сразу в файл, и не в поток. Это, конечно, немного меняет последовательность работы с компонентом, но принцип остаётся прежним.

Самое главное - это то, что при использовании метода doCreate заголовок не просто создаётся и записывается в файл, а может заменить собой существующий заголовок wav-файла! Я специально для этого использовал в коде NewReadWriteFileStream, а не просто NewWriteFileStream. Поэтому для изменения заголовка уже существующего файла не придётся создавать новый файл, записывать туда заголовок, а потом переносить из файла-донора звуковые данные.

Сегодня мы звук записывать не будем, а будем только слушать. В идеале, конечно, нужен wav-файл с неправильными параметрами заголовка, но сойдёт и нормальный. В таком случае можно, наоборот, изменить правильные параметры и посмотреть, что получится.



Как видите, теперь загружать файловый поток не нужно. По имени файла всё читается. Теперь файл нужно проиграть и послушать звучание. А затем изменить параметры заголовка, записать его и снова прослушать.




А здесь мы уже подключаем проигрывание звука. После загрузки звукового потока сразу начинается проигрывание. Внизу есть поле для изменения частоты дискретизации при проигрывании. Это атрибут канала, т.е. применяется только при проигрывании, а на заголовок никак не влияет. Вы можете пробовать во время воспроизведения разные значения, чтобы подобрать нужное. И только затем уже вписывать его в поле сверху (тоже частота дискретизации).

Подобрав нужные значения, можно записывать заголовок в файл. А после записи снова нажимать "Пуск" и проверять.






А вы знаете, что Бангкок означает "оливковая деревня"? Посетите сайт и узнайте всё о Бангкоке.

Нужна качественная эмаль для деревянных и подготовленных металлических поверхностей? Эмаль хв 16 - срок службы от 6 лет, время высыхания - до 1,5 ч.

Комментариев нет:

Отправить комментарий