назад | содержание | вперед

Элемент управления MCI

Для управления мультимедиа служит элемент управления MCI MMControi, который позволяет выполнять все необходимые действия с устройствами мультимедиа. Чтобы можно было использовать его в приложении, необходимо подключить к проекту библиотеку Microsoft Multimedia Control 6.0 с помощью диалогового окна Components, которое открывается командой Components (Компоненты) меню Project (Проект). После подключения этой библиотеки на панели элементов управления появляется кнопка MMControi создающая элемент управления MMControi (рис. 12.1).

Рис. 12.1. Элемент управления MMControl

Элемент управления мультимедиа MMControi состоит из панели с девятью кнопками, назначение которых описано в табл. 12.3.

Таблица 12.3. Кнопки элемента управления MMControl

Кнопка

Название

Описание

Prev (Предыдущая)

Переход на начало записи (файла)

Next (Следующая)

Переход на конец записи (файла)

Step (Шаг вперед)

Переход на шаг (кадр) вперед

Back (Шаг назад)

Переход на шаг (кадр) назад

Pause(Пауза)

Приостановка воспроизведения или записи

Play(Воспроизведение)

Воспроизведение записи

Record (Запись)

Запись информации

Stop (Стоп)

Остановка воспроизведения или записи

Eject(Извлечь)

Извлечение носителя из устройства


 

Элемент управления MMControl имеет большое количество свойств, позволяющих управлять мультимедиа (табл. 12.4).

Таблица 12.4. Основные свойства элемента управления MMControl

Свойство

Описание

AutoEnable

Автоматически делает доступным набор кнопок при готовности устройства к работе

BackEnabled

Делает доступной кнопку Back (Шаг назад)

EjectEnabled

Делает доступной кнопку Eject (Извлечь)

NextEnabled

Делает доступной кнопку Next (Следующая)

PauseEnabled

Делает доступной кнопку Pause (Пауза)

PlayEnabled

Делает доступной кнопку Play (Воспроизведение)

PrevEnabled

Делает доступной кнопку Prev (Предыдущая)

RecordEnabled

Делает доступной кнопку Record (Запись)

StepEnabled

Делает доступной кнопку Step (Шаг вперед)

StopEnabled

Делает доступной кнопку Stop (Стоп)

BackVisible

Назначает видимость кнопки Back (Шаг назад)

EjectVisible

Назначает видимость кнопки Eject (Извлечь)

NextVisible

Назначает видимость кнопки Next (Следующая)

PauseVisible

Назначает видимость кнопки Pause (Пауза)

PlayVisible

Назначает видимость кнопки Play (Воспроизведение)

PrevVisible

Назначает видимость кнопки Prev (Предыдущая)

RecordVisible

Назначает видимость кнопки Record (Запись)

StepVisible

Назначает видимость кнопки Step (Шаг вперед)

StopVisible

Назначает видимость кнопки Stop (Стоп)

CanEject

Возвращает True, если носитель можно извлечь из устройства, в противном случае возвращает False

CanPlay

Возвращает True, если устройство готово к воспроизведению, в противном случае возвращает False

CanRecord

Возвращает True, если устройство готово к записи данных, в противном случае возвращает False

CanStep

Возвращает True, если на устройстве возможно покадровое воспроизведение, в противном случае возвращает False

Command

Устанавливает текущую команду для устройства

DeviceID

Устанавливает идентификатор

DeviceType

Устанавливает тип устройства (табл. 12.2)

Error

Возвращает последнюю ошибку MCI

ErrorMessage

Возвращает сообщение о последней ошибке

FileName

Устанавливает файл для воспроизведения при файловой структуре носителя

Frames

Задает число пропускаемых командой Step шагов

hWndDisplay

Назначает дескриптор окна вывода

Length

Возвращает длину источника данных

Mode

Возвращает текущий режим работы устройства

Notify

Устанавливает возможность работы службы сообщений; если установлено значение True — служба работает, если установлено значение False — служба не работает

NotifyMessage

Задает сообщение, если включена служба сообщений

NotifyValue

Указывает результат последней команды MCI

Orientation

Назначает ориентацию элемента управления MMControl. Если установлено значение 0 — ориентация горизонтальная, если установлено значение 1 — ориентация вертикальная

Position

Назначает текущую позицию на устройстве в соответствии со СВОЙСТВОМ TimeFormat

RecordMode

Определяет текущий'режим записи устройства, если у него есть запись

Shareable

Устанавливает доступ других программ к устройству MCI

Silent

Отключает звук

Start

Устанавливает начальную позицию на носителе

TimeFormat

Определяет формат времени

To

Устанавливает конечную позицию на носителе

Track

Задает номер отдельного трека, о котором возвращают информацию свойства TrackLength и TrackPosition. С номером текущего трека это свойство не связано

TrackLength

Возвращает размер трека, номер которого установлен в свойстве Track

TrackPosition

Возвращает позицию на треке, номер которого установлен в свойстве Track, в соответствии с форматом времени

Tracks

Возвращает количество треков на устройстве

Updatelnterval

Устанавливает интервал выдачи события StatusUpdate



Свойства доступности (содержат в имени Enabled) дают возможность разрешать или запрещать работу соответствующих кнопок.

Замечание

Кнопки в недоступном состоянии видны, но не нажимаются.

При помощи свойств видимости (содержат в имени visible) можно спрятать ненужные кнопки. Если установить свойство видимости какой-либо из кнопок в значение False, то эта кнопка не будет отображаться на панели кнопок ни в режиме проектирования, ни в режиме выполнения приложения.

Свойство AutoEnable дает возможность не беспокоиться об установке доступности кнопок в различных режимах работы устройства мультимедиа. Если для этого свойства установлено значение True, то для каждого режима работы устройства будет автоматически включаться доступность набора кнопок, соответствующего этому режиму. Например, при воспроизведении компакт-дисков будет автоматически установлена доступность кнопок Prev (Предыдущая), Next (Следующая), Play (Воспроизведение) и Eject (Извлечь), если диск вставлен в привод. При запуске воспроизведения кнопка Play автоматически станет недоступной, а кнопка Stop (Стоп) — доступной.

Как указано в табл. 12.4, свойство DeviceType элемента управления MMControl задает тип устройства, который может принимать только заранее заданные текстовые значения для конкретных устройств. Значения свойства DeviceType в соответствии с устройствами мультимедиа перечислены в табл. 12.5.

Таблица 12.5. Значения свойства DeviceType

Тип устройства

Текстовое значение

Файлы в формате AVI

AVIVideo

Музыкальный компакт-диск

CDAudio

Цифровая магнитная запись

DAT

Цифровое видео

DigitalVideo

Прочие устройства

Other

Покадровое видеоизображение

Overlay

Сканер

Scanner

Секвенсор

Sequenser

Видеомагнитофон

VCR

Проигрыватель видеодисков

VideoDisk

Файл в формате WAV

WaveAudio


 

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

Таблица 12.6. Значения свойства TimeFormat

Значение

Шаблон

Описание

0

mciFormatMilliseconds

Время в виде целого четырехбайтного числа в миллисекундах

1

mciFormatHms

Упакованное четырехбайтное число по байтам начиная с младшего: часы, минуты, секунды. Старший байт не используется

2

mciFormatMsf

Упакованное четырехбайтное число по байтам начиная с младшего: минуты, секунды, номер кадра. Старший байт не используется

3

mciFormatFrames

Номер кадра в виде целого четырехбайтного числа

4

mciForittatSmpte24

24-кадровое (24 кадра за секунду) по стандарту SMPTE (Society of Motion Picture and Television Engineers) упакованное четырехбайтное число по байтам начиная с младшего: часы, минуты, секунды, номер кадра

5

mciFormatSmpte25

25-кадровое (25 кадров за секунду) по стандарту SMPTE четырехбайтное число, упакованное аналогично 24-кадровому

6

mciFo rmatSmpte30

30-кадровое (30 кадров за секунду) по стандарту SMPTE четырехбайтное число, упакованное аналогично 24-кадровому

7

mciFormatSmpte30Drop

30-кадровое (30 кадров за секунду) по стандарту SMPTE четырехбайтное число, упакованное аналогично 24-кадровому

8

mciFormatBytes

Номер байта в виде четырехбайтного целого числа

9

mciFormatSamples

Номер кванта (блока информации) в виде четырехбайтного числа

10

me i Fo rma t Titis f

Упакованное четырехбайтное число по байтам начиная с младшего: номер трека, минуты, секунды, номер кадра



Замечание

Более подробно работа с форматом времени описывается в данной главе на примере доработки проигрывателя музыкальных компакт-дисков.

Большинство событий элемента управления MMControl связано с кнопками. Например, для кнопки Back существуют следующие события:

Аналогичные события существуют для всех кнопок элемента управления MMControl и для соответствующей каждой кнопке команды.

Необходимо обратить внимание на событие statusUpdate, которое является "таймером" элемента управления MMControl и генерируется самим объектом. Интервал этого события устанавливается в свойстве updateinterval в миллисекундах. Это событие можно использовать для вывода различной информации о состоянии выполнения команд во время работы.

Настройка элемента управления MMControl очень проста и выполняется с помощью диалогового окна Property Pages (Страницы свойств). Для вызова этого окна (рис. 12.2) необходимо выполнить команду Property Pages меню View (Вид). Основной вкладкой настройки является вкладка Controls (Кнопки управления). На этой вкладке можно назначить доступность и видимость каждой кнопки элемента управления, установив соответствующие флажки рядом с изображением кнопки. При этом названия флажков, как видно из рис. 12.2, соответствуют свойствам доступности и видимости каждой из кнопок (табл. 12.3).

Управление мультимедиа выполняется при помощи команд (табл. 12.7), которые соответствуют кнопкам элемента управления MMControl. Кроме того, элемент управления MMControl выполняет команды поиска, сохранения, открытия/закрытия устройства.

Рис. 12.2. Настройка кнопок элемента управления МСI на вкладке Controls

Таблица 12.7. Команды элемента управления MMсопtrol

Команда

Назначение

Open

Открывает файл (устройство) для работы

Close

Закрывает файл (устройство)

Prev

Переходит в начало предыдущего трека. Если это первый трек или файл, то переход осуществляется в начало этого трека, файла

Next

Переходит в начало следующего трека. Если это последний трек или файл, то переход осуществляется в начало этого трека, файла

Step

Переходит на шаг (кадр) вперед по треку (файлу)

Back

Переходит на шаг (кадр) назад по треку (файлу)

Pause

Приостанавливает работу устройства

Play

Воспроизводит информацию с устройства

Record

Записывает информацию

Stop

Останавливает работу устройства

Eject

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

Save

Сохраняет открытый файл

Seek

Находит позицию (трек) в файле или на устройстве


 

Изучим элемент управления MMControl на примерах.

 

назад | содержание | вперед