назад | содержание | вперед
Элемент управления 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 на примерах.
назад | содержание | вперед