Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть III. Компоненты и программы / Использование компонентов общего назначения / Компоненты страницы System /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


TMediaPlayer - медиаплейер - Программирование от RIN.RU
TMediaPlayer - медиаплейер

Компонент TMediaPlayer представляет собой набор кнопок (рис. 18.36), предназначенных для управления различными мультимедийными устройствами (компакт-дисками, звуковыми картами и т. п.).






Если ваш компьютер оснащен звуковой картой, вставьте этот компонент в пустую форму, в его свойство FileName поместите название любого файла с расширением WAV (из каталога с: | winsows | media), установите в свойство Autoopen компонента значение True и запустите программу - после щелчка мышью по кнопке вы услышите звучание выбранного музыкального фрагмента. Как видите, использование компонента предельно просто. Он автоматически распознает тип мультимедийного устройства по расширению файла и берет на себя управление этим устройством. Разумеется, в каждый момент времени компонент может управлять лишь одним устройством, однако с помощью изменения содержимого FileName или явно с помощью свойства DeviceType программа может менять устройство, связанное с компонентом.


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


  btStopОстанавливает запись или воспроизведение
  btNextПозиционирует устройство на следующую дорожку или в конец носителя информации, если устройство не имеет дорожек
  btPrevПозиционирует устройство на предыдущую дорожку или в начало носителя информации, если устройство не имеет дорожек
  btStepПозиционирует устройство на один блок кадров ближе к концу носителя информации. Количество кадров в блокесодержится в свойстве Frames компонента
  btBackПозиционирует устройство на один блок кадров ближе к началу носителя информации
  btRecordНачинает запись в носитель информации
  btEjectОсвобождает устройство от носителя информации
  btPlayЗапуск
  btPauseПауза




Свойства компонента:
property AutoEnable: Boolean;Разрешает/запрещает автоматическое определение доступных и запрещенных кнопок
property AutoOpen: Boolean;Разрешает/запрещает автоматический старт записи/воспроизведения в момент создания формы, в которую вставлен компонент
property AutoRewind: Boolean;Разрешает/запрещает автоматическую "перемотку" носителя информации в момент начала записи или воспроизведения. Игнорируется, если устройство имеет дорожки или если установлены значения в свойства startpos и EndPos
TMPDevCaps = (mpCanStep, mpCanEject, mpCanPlay, mpCanRecord, mpUsesWindows); TMPDevCapsSet = set of TMPDevCaps;Содержит возможности устройства, связанного с компонентом mpCanStep, - может смещать носитель на кадр вперед или назад (устройство типа Animation, AVI Video, Digital Video, Overlay, или VCR); mpCanEject - может автоматически удалять носитель из устройства; mpCanPlay - может воспроизводить информацию; mpCanRecord - может записывать информацию; mpUsesWindows - может использовать окно
для отображения процесса
property Capabilities: TMPDevCapsSet; TMPBtnType = (btPlay, btPause, btStop, btNext, btPrev, btStep, btBack, btRecord, btEject); Кнопки, перечисленные в этом свойстве, будут использовать умалчиваемые цвета, не перечисленные кнопки будут черно-белыми.
TButtonSet = set of TMPBtnType;property
ColoredButtons: Tbutton Set;
По умолчанию множество ColoredButtons содержит все кнопки 
property DeviceID: Word;Содержит Windows-идентификатор устройства, связанного с компонентом. Доступно только для чтения
TMPDeviceTypes = (dtAutoSelect, dtAVIVideo, dtCDAudio, dtDAT, dtDigitalVideo, dtMMMovie, dtOther, dtOverlay, dtScanner, dtSequencer, dtVCR, dtVideodisc, dtWaveAudio); property DeviceType: TMPDeviceTypes;Содержит тип устройства. Если DeviceTypedtAutoSelect, тип определяется автоматически по расширению файла в свойстве FileName. Каждое мультимедийное устройство в момент инсталляции указывает в файле system. ini, файлы с какими расширениями оно поддерживает
property Display: TWinContrn: Содержит ссылку на окно для устройств, которые могут его использовать в процессе записи/воспроизведения
property DisplayRect: TRect;Содержит область окна Display, которое устройство может использовать для отображения процесса записи/воспроизведения. Для улучшения процесса отображения рекомендуется в DisplayRect указывать умалчиваемые размеры(задаются координатами 0,0 для правого нижнего угла)
property EnabledButtons: TButtonSet;Содержит множество доступных кнопок (тип TButtonSet описан выше для свойства ColoredButtons)
property EndPos: Longint;Содержит положение носителя информации в момент прекращения записи или воспроизведения. Переустановка значения приводит к повторению записи или воспроизведения
property Error: Longint;Содержит код ошибки. Доступно только для чтения
property ErrorMessage: String;Содержит сообщение об ошибке. Доступно только для чтения
property FileName: String;Содержит имя читаемого или записываемого файла
property Frames: Longing; Определяет количество кадров, пропускаемых при выполнении методов step или Back
property Length: Longint; Содержит текущую длину носителя информации. Доступно только для чтения
TMPModes = (mpNotReady,-ipStopped, mpPlaying, mpRecording, mpSeeking, mpPaused, npOpen) ; property Mode: TMPModes;Показывает текущее состояние мультимедийного устройства: mpNotReady - не готово; mpStopped - остановлено; mpPlaying - воспроизводит информацию; mpRecording -записывает информацию; mpSeeking - перемещает носитель информации;mpPaused - Приостановлено; mpOpen - от крыто. Доступно только для чтения
property Notify: Boolean; PNotifyValues = (nvSuccessful, Superseded, nvAborted, nvFailre);Содержит True, если методы Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step и Stop будут создавать событие OnNotify Содержит результат последней команды, создающей событие OnNotify: nvSuccessful - выполнена успешно; nvSuperseded
property NotifyValue: TMPNotify; Values;заменена другой командой; nvAborted досрочно прервана; nvFailure - завершилась ошибкой. Доступно только для чтения
property Position: Longint; Содержит текущую позицию носителя информации
property Shareable: Boolean;Разрешает/запрещает другим компонентам и программам использовать устройство, связанное с данным компонентом
property Start: Longing;Содержит позицию от начала носителя, с которой начинается запись или воспроизведение. Определяется в момент открытия устройства и доступно только для чтения
property StartPos: Longint;Содержит текущую позицию от начала носителя, с которого начинается запись или воспроизведение
TMPTimeFormats = (tfMilliseconds, tfHMS, tfMSF, tfFrames,tfSMPTE24, tfSMPTE25, tfSMPTESO,tfSMPTE30Drop, tfBytes, tfSam ples, tfTMSF);property TimeFormat: TMPTimeFormats;Определяет формат представления данных в свойствах StartPos, Length, Position, Start и Endpos (см. пояснения ниже)
property TrackLength[TrackNum: Integer]: Longint;Возвращает длину (в формате TimeFormat) дорожки с индексом TrackNum. Доступно только для чтения
property TrackPosition[TrackNum: Integer]: LongintВозвращает стартовую позицию (в формате TimeFormat) дорожки С индексом TrackNum. Доступно только для чтения
property Tracks: Longint;Содержит количество дорожек в открытом устройстве. Доступно только для чтения
property VisibleButtons: TButtonSet; Содержит множество видимых кнопок (тип TButtonSet описан выше для свойства ColoredButtons)
property Wait: Boolean; Если содержит True, управление возвращается в программу только после завершения перехода устройства в другое состояние, связанное с методами Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step или Stop



Если свойство AutoEnabie имеет значение True, компонент автоматически по типу устройства или расширению файла и значению свойства Mode определяет, какие кнопки будут доступны пользователю. Если AutoEnabie=Faise, доступными будут только те кнопки, которые входят в множество EnabiedButtons. Множество Enabied-Buttonsигнорируется, если AutoEnable=True.


Свойство AutoRewind игнорируется, если устройство имеет дорожки или если процесс записи/воспроизведения вызван изменением значения в свойстве StartPos или Endpos.


Положение носителя В свойствах StartPos, Length, Position, Start и EndPos В Зависимости от значения свойства TimeFormat должно интерпретироваться следующим образом (отсчет ведется от начала носителя информации):


tfMilliseconds Миллисекунды в диапазоне от 0 до 4 294 967 295 Часы, минуты, секунды.
tfHMSЗанимают в порядке перечисления по одному байту начиная с младшего. Старшин байт Longint не используется
tfMSFМинуты, секунды и кадры. Занимают в порядке перечисления по одному байту начиная с младшего. Старший байт Longint не используется
tfFramesКадры в диапазоне от 0 до 4 294 967 295
tfSMPTE24Часы, минуты. секунды и количество блоков по 24 кадра в секунду. Занимают в порядке перечисления по одному байту начиная с младшего
tfSMPTE25Часы, минуты, секунды и количество блоков по 25 кадров в секунду
tfSMPTE30Часы, минуты, секунды и количество блоков по 30 кадров в секунду
tfSMPTE30DropЧасы, минуты, секунды и количество пропущенных блоков по 30 кадров в секунду
tfBytesБайты в диапазоне от 0 до 4 294 967 295
tfSamplesКоличество условных блоков информации в диапазоне от 0 до 4294967295
tfTMSFДорожки, минуты, секунды и кадры. Занимают в порядке перечисления по одному байту начиная с младшего



Свойство TimeFormat недоступно из окна Инспектора объектов и устанавливается автоматически при открытии мультимедийного устройства методом open. В связи с этим значения в свойствах StartPos, Position и EndPos могут устанавливаться, а в свойствах Length, Start, TrackLength И TrackPosition Становятся действительными только после вызова СPеn.


Методы компонента:
procedure AutoButtonSet(Btn: TMPBtnType); dynamic;Реализует разрешение/запрещение кнопок компонента при установке в свойство AutoEnable значения True Перемещает текущую позицию в носителе информации назад на количество кадров, содержащихся В свойстве Frames
procedure Back;По умолчанию вызывает обработчик события OnClick.
procedure Click(Button: TMPBtnType; var DoDefault: eoolean); dynamic ;Предназначен для перекрытия в потомках
procedure Close; Закрывает связанное с компонентом устройство
procedure DoNotify; dynamic;По умолчанию вызывает обработчик события OnNotify. Предназначен для перекрытия в потомках
procedure Eject;Выгружает носитель информации из устройства
procedure MMNotify(var Message: TMessage); message :MCINOTIFY;Реализует отклик на сообщение Windows мм mcinotify. По умолчанию вызывает метод DoNotify
procedure Next;Перемещает текущую позицию носителя на начало следующей дорожки, а если устройство не имеет дорожек - в конец носителя
procedure Notification ( AComponent: TComponent; Operation: TOperation); override;Извещает компонент AComponent о том, что завершилась операция Operation 
procedure Open;Открывает мультимедийное устройство
procedure Pause; Приостанавливает процесс воспроизведения или записи информации. Если устройство уже было приостановлено, восстанавливает процесс с помощью вызова метода Resume
procedure PauseOnly;Приостанавливает процесс воспроизведения или записи информации. Если устройство уже было приостановлено, ничего не делает
procedure Play; Начинает воспроизведение с позиции StartPos, а если это свойство не установлено - с текущей позиции
position
procedure PostClick (Button: TMPBtnType); dynamic; Реализует отклик на событие OnPostClick. По умолчанию вызывает соответствующий обработчик события
procedure Previous; Перемещает текущую позицию носителя на начало предыдущей дорожки, а если устройство не имеет дорожек - в начало носителя
procedure Resume;Восстанавливает процесс записи или воспроизведения. Вызывается при повторном щелчке по кнопке btPause
procedure Rewind;Перемещает текущую позицию носителя к положению, определяемому свойством Start
procedure Save;Сохраняет информацию в файле с именем FileName
procedure StartRecording;Начинает запись информации
с текущей позиции или позиции StartPos
procedure Step;Перемещает текущую позицию в носителе информации вперед на количество кадров, содержащихся В свойстве Frames
procedure Stop;Прекращает запись или воспроизведение информации
Для компонента определены следующие события:
EMPNotify = procedure (Sender:TObject; Button: TMPBtnType; var DoDefault: Boolean) of object; property OnClick: EMPNotify;Возникает после щелчка по кнопке Button компонента. Если DoDefault=True, вызывается метод, связанный с этой кнопкой
property OnNotify: TNotifу Event; Возникает после завершения вызова одного из методов Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, Resume, Rewind, StartRecording, Step или Stop,если свойство Notify имеет значение True
EMPPostNotify = procedure (Sender: TObject; Button: TMPBtnType) of object; property OnPostClick: EMPPost-Notify;Если wait=True, событие OnPostClick возникает только после завершения соответствующей операции, вызванной событием OnClick, в противном случае - немедленно после OnClick



 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь