Графика и мультимедиа 371

Рис. 5.21

Приложение

универсального

проигрывателя:

воспроизведение
аудио файла (а) и
видео файла
в отдельном
окне (б)

В компоненте MediaPlayer определены события OnClick и OnNotify. Первое
из них происходит при выборе пользователем одной из кнопок медиа-плеера и
определено как

enum TMPBtnType (btPlay, btPause, btStop, btNext,

btprev, btStep, btBack, btRecord, btEject);

void _fastcall Click(TObject *Sender, TMPBtnType Button,
bool &DoDefault)

Параметр Button указывает выбранную кнопку. Параметр DoDefault, переда-
ваемый по ссылке, определяет выполнение (при значении true по умолчанию) или
отказ от выполнения стандартного метода, соответствующего выбранной кнопке.

Событие OnNotify происходит после возвращения очередного метода, если
свойство медиа-плеера Notify было установлено в true. Способ возврата любого ме-
тода медиа-плеера определяется свойством Wait. Если установить Wait равным
false, то возвращение управления в приложение происходит сразу после вызова
метода, не дожидаясь завершения его выполнения. Таким образом, задав Notify
равным true и Wait равным false, можно обеспечить немедленный возврат в при-
ложение и отображения пользователю текущего состояния объекта мультимедиа.

Свойства Notify и Wait действуют только на один очередной метод. Поэтому
их значения надо каждый раз восстанавливать в обработчиках событий OnClick
или OnNotify.

В обработчиках событий можно читать свойство Mode, характеризующее те-
кущее состояние устройства мультимедиа. Можно также читать и устанавливать
ряд свойств, характеризующих размер воспроизводимого файла и текущую пози-
цию в нем.

Вот, собственно, в конспективном виде основная информация о компоненте
MediaPlayer. А теперь попробуйте все это на практике. Простое и в то же время
мощное приложение можно сделать очень просто. Начните новый проект и перене-
сите на форму компоненты MediaPlayer, MainMenu и OpenDialog. В фильтре ком-
понента OpenDialog можно, например, задать: