Для оценки текущего состояния проигрывателя обращаемся к свойству: property Mode: TMPModes;
type TMPModes = (mpNotReady, mpStopped, mpPlaying, mpRecording, mpSeeking, mpPaused, mpOpen);
Обработка событий в проигрывателе
Любой щелчок по кнопкам проигрывателя мультимедиа вызывает событие: property OnClick: EMPNotify;
type EMPNotify = procedure (Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean) of object;
Здесь Button - ссылка на кнопку, вызвавшую событие. Параметр DoDefault определяет дальнейшее развитие события. Если в эту переменную устанавливается значение true, то управление передается соответствующему методу (для кнопки Play - Play() , Stop - Stop() и т. д.). Значение false изменяет нормальный ход вещей; в этом случае программист сам определяет, что будет дальше.
За обработчиком OnClick() вызывается событие:
property OnPostClick: EMPPostNotify;
type EMPPostNotify = procedure (Sender: TObject; Button: TMPBtnType) of object;
По завершении работы любого метода управления проигрывателем (Back,
Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step и Stop) результат его работы передается в свойство:
property NotifyValue: TMPNotifyValues;
Это одно из четырех значений:
type TMPNotifyValues = (nvSuccessful {успешно},
nvSuperseded {приостановлено}, nvAborted {прервано}, nvFailure {ошибка});
Сразу после обновления этого свойства генерируется событие:
property OnNotify: TNotifyEvent;
Мы можем отказаться от вызова события OnNotify(). В этом случае надо запретить перечисленным выше методам рапортовать свойству NotifyValue о своих достижениях. Для этого предназначено доступное только во время выполнения программы свойство:
property Notify: Boolean;
Передав (перед вызовом метода управления проигрывателем) в это свойство значение false, мы откажемся от обновления свойства NotifyValue и соответственно от генерации события OnNotify(). Наоборот, значение true заставит проигрыватель генерировать событие OnNotify().
Поумолчанию компонент TMediaPlayer настроен следующим образом. Событие On-Notify() генерируется только после выполнения методов Play() и StartRecord-ing(). Перед обращением к этим методам свойство Notify автоматически устанавливается в true. Вызов всех остальных методов управления проигрывателем осуществляется в режиме Notify = false.
Свойство Notify не запоминает своего состояния и оказывает влияние только на однократный вызов метода. Перед повторным вызовом метода необходимо вновь переопределить значение этого свойства.