Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 296

•  TDictionary Custom Sort  6 342

•  Fast Watermark Sources  6 131

•  3D Designer  9 064

•  Sik Screen Capture  6 452

•  Patch Maker  6 868

•  Айболит (remote control)  6 855

•  ListBox Drag & Drop  5 730

•  Доска для игры Реверси  96 588

•  Графические эффекты  7 071

•  Рисование по маске  6 371

•  Перетаскивание изображений  5 244

•  Canvas Drawing  5 617

•  Рисование Луны  5 315

•  Поворот изображения  4 867

•  Рисование стержней  3 452

•  Paint on Shape  2 710

•  Генератор кроссвордов  3 588

•  Головоломка Paletto  2 880

•  Теорема Монжа об окружностях  3 686

•  Пазл Numbrix  2 419

•  Заборы и коммивояжеры  3 101

•  Игра HIP  2 061

•  Игра Go (Го)  1 986

•  Симулятор лифта  2 348

•  Программа укладки плитки  2 049

•  Генератор лабиринта  2 507

•  Проверка числового ввода  2 194

•  HEX View  2 520

•  Физический маятник  2 136

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Формат Wave-файла



Вот он:


TWaveHeader = record
Marker1:        Array[0..3] of Char;
BytesFollowing: LongInt;
Marker2:        Array[0..3] of Char;
Marker3:        Array[0..3] of Char;
Fixed1:         LongInt;
FormatTag:      Word;
Channels:       Word;
SampleRate:     LongInt;
BytesPerSecond: LongInt;
BytesPerSample: Word;
BitsPerSample:  Word;
Marker4:        Array[0..3] of Char;
DataBytes:      LongInt;
end;

Для создания собственного WAV-файла сделайте следующее:


DataBytes := Channels;
DataBytes := DataBytes * SampleRate;
DataBytes := DataBytes * Resolution;
DataBytes := DataBytes div 8;
DataBytes := DataBytes * Duration;
DataBytes := DataBytes div 1000;


WaveHeader.Marker1 := 'RIFF';
WaveHeader.BytesFollowing := DataBytes + 36;
WaveHeader.Marker2 := 'WAVE';
WaveHeader.Marker3 := 'fmt ';
WaveHeader.Fixed1 := 16;
WaveHeader.FormatTag := 1;
WaveHeader.SampleRate := SampleRate;
WaveHeader.Channels := Channels;
WaveHeader.BytesPerSecond := Channels;
WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * SampleRate;
WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond * Resolution;
WaveHeader.BytesPerSecond := WaveHeader.BytesPerSecond div 8;
WaveHeader.BytesPerSample := Channels * Resolution div 8;
WaveHeader.BitsPerSample := Resolution;
WaveHeader.Marker4 := 'data';
WaveHeader.DataBytes := DataBytes;

Остальная часть файлы является звуковыми данными. Порядок следования: верхний уровень для левого канала, верхний уровень для правого канала и так далее. Для моно или 8-битных файлов сделайте соответствующие изменения.





Похожие по теме исходники

Аудио Деформатор

Wave Recorder

Haar Wavelet

Wave Recorder v2

 

Wave and MIDI In-Out

Example RIFF Wave

Wave

WAVE Tagger

 

Разбиение файла на части

Текст внутри файла




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте