Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #58, ОКТЯБРЬ 2003 г.

Свой видеокомбайн на Delphi

Лозовский Александр

Xakep, номер #058, стр. 058-082-5


procedure TForm1.MMAVIVideoDisplay1Click(Sender: TObject);

var

Bmp: TBitmap; //объявляем растровый файл

begin

MMAVIVideoDisplay1.Refresh; //Освежимся :)

Bmp := TBitmap.Create; //Создаем файл

try //Попытаемся (на случай ошибки)

Bmp.Width := MMAVIVideoDisplay1.Width-2*MMAVIVideoDisplay1.BevelExtend; //ширина битмапа=ширине кадра - границы

Bmp.Height:= MMAVIVideoDisplay1.Height-2*MMAVIVideoDisplay1.BevelExtend; //То же с высотой

Bmp.Canvas.CopyRect(Rect(0,0,Bmp.Width,Bmp.Height), //Копируем соответствующий прямоугольничек

MMAVIVideoDisplay1.Canvas,MMAVIVideoDisplay1.BeveledRect); //в битмап

Bmp.SaveToFile('pic'+inttostr(N)+'.bmp'); //сохраняем файл на диск

Inc(n); //увеличим счетчик

finally

Bmp.Free; //освободим память

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

var

VideoStream: TMMAVIStream; //Аудиопоток

AudioStream: TMMAVIStream; //Видеопоток

FName: string;

begin

VideoStream := MMAVIFile1.TypedStreams[stVideo,0]; //берем первый видеопоток

AudioStream := MMAVIFile1.TypedStreams[stAudio,0]; //То же для аудио

try

FName := ExtractFilePath(MMAVIFile1.FileName)+ChangeFileExt(ExtractFileName(MMAVIFile1.FileName),'');

//Получаем имя файла, выбранного юзером

With MMAVICompressor1 do //Работаем

begin

AddStream(VideoStream); //Добавим

SaveToFile(FName+'_video.avi'); //Сохраняем в файл

FreeStreams; //Освобождаем

AddStream(AudioStream); //Добавим аудио

SaveToFile(FName+'_audio.wav'); //И скинем его на диск

FreeStreams;

end

finally

ShowMessage ('Файл успешно порван на аудио и видео!'); //Поведаем об успехе

end;

end;

Назад на стр. 058-082-4  Содержание