Свой видеокомбайн на Delphi Лозовский Александр Xakep, номер #058, стр. 058-082-3 RewindWhenDone - если TRUE, то позиция чтения файла по окончании воспроизведения возвращается к началу, если FALSE - остается. AddFile - добавляет файл в список воспроизведения. Ей необходимо передать имя компонента TMMAVIFile. AddStream - то же самое, но для потока. hasAudio - принимает значение TRUE, если в заданном файле присутствует звук. hasVideo - аналогично предыдущей, но для видео. Playing - становится TRUE, если идет процесс воспроизведения. Paused - TRUE, если воспроизведение на паузе. И, наконец, процедуры PLAY, PAUSE и STOP заботятся, соответственно, о запуске воспроизведения, паузе и стопе. Зная эти и некоторые другие процедуры, можно легко обойтись без визуальной части этого компонента и сделать собственный дизайн. Точнее, мы просто обязаны это сделать, если твое творение выйдет за пределы твоего компа. Думаю, пользователю не надо знать, почему он заплатил $20 за прогу, написанную с помощью чужих компонентов :). Правда, Multimedia Tools стоят около 260 евро, так что все справедливо. MMAVIVideoDisplay - компонент-дисплей. Перед началом работы, как я уже говорил, должен быть связан с MMAVIControl, хотя возможна и работа на автопилоте - в этом случае показывать он будет не весь поток, а отдельные фреймы. Для этого необходимо: 1) Добавить файл в список. 2) Передать номер потока (то есть, первый). 3) Выбрать номер фрейма: AVIDisplay.FrameIdx := номер. Нумеруются они от нуля до Streams[x].Length-1, поэтому экранизацией легко управлять с помощью трекбара или слайдера. MMAVICompressor - отвечает за работу с AVI-файлами. Например, ты легко можешь создать собственную AVI’шку из нескольких BMP, записывать потоки в файл и многое другое. По сути, это - путь к редактированию авишек. А плеер с функциями editor’а - это уже о-го-го, такое даже WMPlayer’у не под силу. AddStream - добавляет поток в файл. Откуда брать поток и файл? Об этом я уже писал чуть выше, когда рассказывал про TMMAVIFile. Ей передается только один аргумент - переменная типа TMMAVIStream. SaveToFile - сохраняет потоки в файле; главное здесь - не скинуть на диск ненужные данные, поэтому пользуйся FreeStreams как процедурой, обнуляющей список потоков. Те же действия, проведенные для аудиопотока с сохранением в WAV-файл, позволяют выдирать звук из файла кино. Возьми на заметку - очень полезная вещь. Кодинг Наконец-то мы переходим к торжественной части. Она будет совсем несложной, и тебе понадобится не более 1% CPU твоего мозга. Клади на форму компоненты: 1 MMLabel (объемный лейбл из MMTools), 1 MMAVIVideoDisplay, 1 MMAVIOpenDialog, 1 MMAVIFile, 1 MMAVICompressor, 1 MMSlider (по типу трекбара из MMTools), 1 MMAVISaveDialog, 1 MMAVIControl, 4 кнопки. Вот как это примерно должно выглядеть: Расставим caption’ы: Button1 - "открыть...". Это кнопка для открытия файлов. Button2 - "Обн. фреймы". А эта обнуляет список сохраненных фреймов. Button3 - "Порвать A/V". Позволяет делить AVI-файл на два - с видео и со звуком. Button4 - "По кадрам". После ее нажатия ты сможешь выбирать нужный тебе кадр с помощью slider'a. |