Настал час поговорить о том, что больше всего нравится пользователю и что больше всего ненавидит сухой технарь, - о развлечениях. Начнем с малого. Наличие у компьютера звуковой карты, по крайней мере, обязывает нашу программу периодически что-нибудь «пищать» нашему любимому пользователю. Хотя это еще не вполне мультимедиа, но использование функции:
function MessageBeep(uType : Uint) : Boolean;
сделает нашу программу более привлекательной и дружественной. Перечень звуков, которые способна воспроизвести эта функция, приведен в табл. 30.1.
Если возможности MessageBeep() вас не устраивают, добро пожаловать в царство Multimedia.
Проигрыватель мультимедиа - компонент TMediaPlayer
Элемент управления TMediaPlayer (представитель странички System) - очередной классический пример возможностей классов VCL по инкапсуляции функ-
ций MCI (Media Control Interface, интерфейс управления мультимедиа) из коллекции Win32 API. Класс описан в модуле MPPLayer. Едва ли найдется еще один компонент, способный превратить работу со сложными функциями мультимедиа Windows в столь увлекательное и одновременно простое занятие.
С точки зрения иерархии наследования класс TMediaPlayer особого интереса не представляет. Он построен на основе TCustomControl и унаследовал от него минимальный набор возможностей, позволяющих проигрывателю реагировать на элементарные внешние воздействия.
Подготовка к воспроизведению
Вся жизнедеятельность проигрывателя TMediaPlayer начинается с момента загрузки файла мультимедиа. Имя файла определяется в свойстве:
property FileName: string;
По умолчанию проигрыватель захватывает мультимедийный файл монопольно, т. е. не допускает его совместного использования. Однако можно разрешить обращаться к файлу и другим процессам, если установить в true свойство:
property Shareable: Boolean; //по умолчанию false
Прежде чем открыть интересующий нас файл, необходимо указать его тип: property DeviceType: TMPDeviceTypes; //по умолчанию dtAutoSelect
где:
type TMPDeviceTypes = (dtAutoSelect, dtAVIVideo, dtCDAudio, dtDAT, dtDigitalVideo, dtMMMovie, dtOther, dtOverlay, dtScanner, dtSequencer, dtVCR, dtVideodisc, dtWaveAudio);
Оставив в свойстве DeviceType универсальное значение dtAutoSelect, мы разрешим проигрывателю самостоятельно найти и подгрузить соответствующий файлу мультимедиа декодер.
Определившись с именем файла и декодирующим устройством, загружаем файл в проигрыватель при помощи процедуры:
procedure Open;
®Метод Open() не только загружает файл мультимедиа. Помимо этого осуществляется поиск и подключение драйверов и устройств, необходимых для воспроизведения (записи) объекта мультимедиа.
Явное обращение к методу Open() не потребуется, если установить в true свойство AutoOpen. В этом случае проигрыватель загрузит файл автоматически.
property AutoOpen: Boolean;