Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Wave-header   Найти похожие ветки 

 
GlavBOTan ©   (2004-04-30 22:20) [0]

Еще один вопрос про wave:
Опытным путем (открытием в блокноте :) было установленно, что в начале файла имеется какая-то служебная информация (то ли метод кодировки, то ли еще что-то). Кто знает, что это такое, и сколько места оно занимает в файле (например, 128 первых байт), пожалуйста отзовитесь. А еще лучше киньте мне ссылочку на ресурс с описанием (желательно на русском и для чайников, но на английском и для профи тоже приветствуется) wave-формата, если таковая есть. Заранее благодарен.


 
x3{neon}   (2004-04-30 22:44) [1]

Вот заголовок wav файла:
type WAVHeader = record

nChannels       : Word;
nBitsPerSample  : LongInt;
nSamplesPerSec  : LongInt;
nAvgBytesPerSec : LongInt;
RIFFSize        : LongInt;
fmtSize         : LongInt;
formatTag       : Word;
nBlockAlign     : LongInt;
DataSize        : LongInt;
end;

А вот формат:
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;
Может быть поможет


 
konstantinov ©   (2004-05-01 00:26) [2]

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;

Остальная часть файлы является звуковыми данными.


 
wicked ©   (2004-05-01 14:23) [3]

по сабж -
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_waveformatex_str.asp
а также функции mmioOpen/mmioDescend/mmioAscend/mmioRead/mmioClose (линк тот же, там должно быть меню слева)

2 [1] и [2]
и не стыдно неправильную информацию давать?...


 
GlavBOTan ©   (2004-05-01 21:29) [4]

Всем большое спасибо! Пойду разбираться...



Страницы: 1 вся ветка

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
14-1088502398
ДудушкаКо
2004-06-29 13:46
2004.07.18
Портрет К Маркса большой ссылка или на мейл


14-1087048354
Семен Сорокин
2004-06-12 17:52
2004.07.18
Питерцы, а не собраться ли нам...


1-1088753591
Provodnick
2004-07-02 11:33
2004.07.18
Как вставить в Worde текст с новой страницы?


3-1087564847
None
2004-06-18 17:20
2004.07.18
Даты


1-1088854377
pioner
2004-07-03 15:32
2004.07.18
найти файл