Свой видеокомбайн на 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; |