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

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

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

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


TMMHiTimer - аналог обычного таймера, но, по утверждению разработчиков, имеющий большую точность. К тому же свойство Priority определяет приоритет его потока. Это может быть очень важно.

Вкладка "Wave"

Здесь содержится гигантское количество компонентов, связанных со звуком - воспроизведение, запись, конвертирование и т.п.

MMWavePlayer - плеер, он и в Африке плеер. Позволяет работать с моно, стерео и мультиканальным звуком. Понимает только один формат - WAV. Старые добрые процедуры Play, Stop и Pause присутствуют и в нем, поэтому пойдем дальше.

TMMWaveRecorder - компонент, предназначенный для записи звука. Очень похож на предыдущий, только работа его инициируется процедурой Recording.

Это, как ты понимаешь, 2 основных компонента, но есть еще куча дополнительных, предназначенных для фильтрации, построения различных кривых и многого другого. В освоении их тебе помогут демы.

Вкладка "Visual"

Компоненты, визуализирующие звуковой поток. Иначе говоря - осциллоскопы, построители спектрограмм, уровни... в общем, это надо видеть. А увидев, сказать: "О, я-я, дас ист гут. Штангентзиркуль! Гут!"

Работа с AVI-файлами (закладка MMAVI)

AVIOpenDialog - стандартный диалог открытия, переделанный под мультимедийные файлы. Из серьезных изменений я заметил только фильтр расширений и немецкий язык интерфейса, поэтому пользоваться им может только настоящий фанат Вольфштайна. Имеется также MMAVISaveDialog как диалог сохранения.

TMMAVIFile - пожалуй, самый важный компонент, предназначенный для обслуживания AVI-файла. Свойство FileName определяет имя файла, AccessMode задает тип доступа (amRead - только чтение, amReadWrite - чтение-запись, amWrite - запись). После этого ты получаешь доступ к самым интимным местам файла (я имею в виду потоки). Осуществить этот самый доступ поможет, например, функция TypedStreams - после передачи ей типа (stVideo/stAudio) и номера потока, она вернет тебе переменную типа TMMAVIStream. Как это использовать, я покажу на примере.

Процедуры:

OpenFile - открывает заданный файл.

CreateFile - создает новый файл (дело в том, что с помощью этой коллекции можно также создавать AVI-файлы).

CreateVideoStream - создает видеопоток в заданном файле (для этого ей надо передать FrameRate (как правило, 1) и имя потока - любую строку). Например: "MainSound". Возвращает переменную типа TMMAVIStream.

CreateAudioStream - соответственно создает аудиопоток (в качестве аргументов - формат и имя потока).

Да, кстати, все нижеописанные компоненты работают только с файлом, обработанным TMMAVIFile, поэтому свойства, типа FileName, у них нет.

MMAVIControl - отменный пульт контроля над воспроизведением аудио и видео. Уже содержит в себе кнопки Play, Stop, Pause, трек для быстрой навигации и таймер. В общем, отличная вещь.

Свойства:

VideoDisplay - определяет имя компонента, показывающего изображение. Обычно это MMAVIVideoDisplay, его я опишу чуть позже.

Назад на стр. 058-082-1  Содержание  Вперед на стр. 058-082-3