Работа с файлами и мультимедиа
Download 361.5 Kb.
|
Работа с файлами и мультимедиа
- Bu sahifa navigatsiya:
- Свойство Тип Описание
Компонент MediaPlayer
Если для просмотра графических изображений используется обычный компонент Delphi, реализованный в самой VCL, то для просмотра или прослушивания мультимедийных данных используется системный компонент - MediaPlayer, расположенный на закладке System палитры компонентов. Суть системных компонент состоит в том, что практически все задачи по их работоспособности возлагаются на операционную систему, а в VCL лишь реализован простой интерфейс для доступа к функциям, предоставляемым ОС. В то же время, сам компонент MediaPlayer является обычным визуальным компонентом, основанным на TWinControl, а его "системность" проявляется лишь в виде функций, которые через его посредство реализуются. Всего у этого компонента довольно много собственных свойств, что объясняется тем, что он, с одной стороны, предоставляет пользовательский интерфейс, а с другой - должен обеспечивать управление различными мультимедийными устройствами. Фактически, мы имеем дело с визуальным компонентом, обеспечивающим интерфейс и, одновременно, - с неким системным плеером. Список ряда свойств компонента MediaPlayer приведен в таблице15.2.
Начнем со свойств, относящихся к внешнему виду компонента. Прежде всего, это ColoredButtons, EnabledButtons и VisibleButtons. С помощью этих свойств можно управлять доступностью и видом отдельных кнопок компонента. Всего кнопок 9, по числу основных операций, необходимых для устройства воспроизведения типа проигрывателя CD. Если же проигрывать компакт-диски не планируется, то вполне можно обойтись без кнопки выброса (btEject), равно как может быть излишним и наличие кнопок перехода между дорожками (btNext и btPrev). Кнопка записи (btRecord) также является ненужной, если речь идет именно о плеере. Некоторые свойства необходимы только для определенных устройств воспроизведения, например, свойство Display актуально только для данных, имеющих видеоряд. Тип устройства задается свойством DeviceType, которое может принимать одно из следующих значений: dtAutoSelect - тип устройства распознается автоматически; dtAVIVideo - клип видео в формате AVI; dtCDAudio - аудио CD; dtSequencer - файл MIDI; dtVideodisc - видео CD; dtWaveAudio - файл WAV. В то же время, в типичном случае оставляют принятое по умолчанию значение dtAuto, поскольку, за исключением CD и MIDI, остальные типы из реально встречающихся сейчас файлов не используются (тип dtAVIvideo подразумевает именно формат AVI, а не MPEG). Поддержка конкретных типов воспроизводимых файлов полностью лежит на ОС и установленных программах-кодеках, так что компонент MediaPlayer может воспроизводить все те же данные, что и Windows Media Player. В простейшем случае, когда требуется только возможность проигрывания Audio-CD, достаточно просто поместить компонент на форму и установить свойство DeviceType в dtCDAudio, а AutoOpen - в истину. После этого останется лишь запустить приложение и нажать на кнопку Play, и если в приводе окажется диск формата CD-DA, то начнется его воспроизведение. Если же надо создать универсальный проигрыватель, то потребуется оставить эти свойства как принято по умолчанию - DeviceType в dtAutoSelect, а AutoOpen - в ложь. При этом надо будет предусмотреть код, который будет устанавливать значение свойства FileName, если только не стоит задача воспроизводить один и тот же файл. Более того, для обычного проигрывателя многие кнопки будут лишними. кроме того, у компонента MediaPlayer имеется ряд методов, дублирующих нажатие на кнопки. А именно, Play, Stop, Back, Next и т.д. Но наиболее важными являются методы Open и Close. Первый делает плеер доступным, открывая интерфейс MDI, а второй, наоборот, закрывает. При этом следует учитывать, что открывать интерфейс можно только после того, как определен файл. Соответственно, если допустить, что на форме имеется проигрыватель (MediaMP), диалог открытия файла (OpenDlg) и кнопка "Открыть файл", то для нее код получится следующим: if not OpenDlg.Execute then exit; MediaMP.Close; MediaMP.FileName:=OpenDlg.FileName; MediaMP.Open; Если добавить еще строку с обращением к методу Play, то воспроизведение начнется автоматически. В то же время, если уж и создавать проигрыватель, то понадобится дать возможность остановить и продолжить просмотр. Итого получим 3 кнопки. Что касается компонента MediaPlayer, то нам от него понадобится лишь взаимодействие с системой, таким образом можно будет сделать его невидимым, установив свойство Visible в ложь. Вместе с тем, для вывода видео нам понадобится какой-либо компонент, происходящий от TWinControl, и обычная панель для этих целей вполне пригодна. Единственный вопрос может заключаться в том, что размеры видео могут быть больше, чем отведено пространства на панели. В таком случае нам поможет свойство DisplayRect, при помощи которого можно не только узнать размеры кадра, но и установить нужное. Поскольку при этом важно не нарушить пропорции, то проверять придется отдельно высоту и ширину, и вычислять нужный коэффициент масштабирования. Таким образом, нам надо будет сначала вычислить оба коэффициента, а затем в качестве окончательного взять больший. var kw, kh, k: real; ... kw:=MediaMP.DisplayRect.Right/VideoPan.Width; kh:=MediaMP.DisplayRect.Bottom/VideoPan.Height; if (kw>1) or (kh>1) then begin if kh>kw then k:=kh else k:=kw; end else k:=1; После этого останется лишь вычислить окончательные размеры изображения и установить получившиеся значения свойству DisplayRect, чтобы любой клип "вписался" в область просмотра, а новые значения можно вывести в окне заголовка (рис. 15.4). Рис. 15.4. Воспроизведение видео MPEG4 с масштабированием Полный код приложения находится в каталоге Demo\Part3\Mplay. Download 361.5 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling