|
#1
|
|||
|
|||
Звуковой редактор
От нефиг делать Пишу фсякую ерундень. Вот решил написать звуковаой редактор типа NeroWaveEditor. Т.е. чтобы был функционален, прост в обращении и быстр. Начал писать. Пока только для wav. Кто хочет принять участие? Условие одно. Всё должно быть строго OpenSource, просто не льблю скрывать что-то от других.
|
#2
|
|||
|
|||
кому не лень проверьте у ся на дельфах. я пишу под 7.0
Итак, приступлю.
Определим сначала с чем мы будем иметь дело: Исходный файл: wav(потом что-нить другое добавлю) Цель: Загрузить файл в прогу. Код:
//Тип, описывающий формат: type TWaveHeader = record//будет заголовок нашего файла ChunkRiff: array [0..3] of char;//'RIFF' RiffLen: longint; ChunkWave: array [0..3] of char;//'WAVE' ChunkFmt: array [0..3] of char; //'fmt ' InfoLen: longint; WaveType: smallint;//(1=pcm) метод сжатия Ch: smallint; Freq: longint; BytesPerSec: longint; align: smallint; Bits: smallint; end; type TWaveHeaderData = record ChunkData: array[0..3] of char;//'data' DataLen: longint; end; тут такое дело. Можно было бы поместить всё в одном типе, но заголовки wav файлов различны. Поэтому желательно разделить эти части на две. Далее будет понятно, почему. var main: TMain; WavFile,WavMemory:TStream; Hdr:TWaveHeader; hdrd:TWaveHeaderData; Procedure OpenWavFile(FileName:String); var n: integer; begin WavFile:=TFileStream.Create(filename,fmOpenRead,fmShareDenyNone); WavMemory:=TMemoryStream.Create; WavMemory.CopyFrom(WavFile,WavFile.Size); WavFile.Free; WavMemory.Position:=0; WavMemory.Read(Hdr,sizeof(hdr)); // читаем заголовок WavMemory.Position:=0; wavmemory.Read(hdrd,sizeof(hdrd)); n:=wavmemory.Position; while hdrd.idData<>'data' do begin n:=n+1; wavmemory.Position:=n-4; wavmemory.Read(hdrd,sizeof(hdrd)); if wavmemory.Position>1024 then begin //вот тут заминочка, пока не решил... ShowMessage('Неподдерживаемый формат файла!'); WavMemory.Free; exit; end end; end; procedure Tmain.openfileClick(Sender: TObject); begin if opendialog1.Execute then openWavFile(opendialog1.FileName); end; Код:
Фсё! Данные файла успешно заносятся в поток! Люди, не спите, подключайтесь!!! Последний раз редактировалось Admin, 07.02.2010 в 14:20. |
#3
|
|||
|
|||
Чё, никто не заинтересован?
|