Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Мультимедиа для Windows

© Александр Фролов, Григорий Фролов
Том 15, М.: Диалог-МИФИ, 1994, 284 стр.

[Назад] [Содеожание] [Дальше]

3.1. Интерфейс управляющих строк MCI

Для передачи управляющей строки устройству чтения CD ROM вы должны использовать функцию mciSendString . Вам могут потребоваться и другие функции, описанные во второй главе и предназначенные для работы с интерфейсом MCI.

Открытие и закрытие устройства CD ROM

Перед началом работы с устройством вы должны его открыть, передав управляющую строку open . При этом вы должны указать имя устройства как cdaudio (можно использовать алиас):

open cdaudio alias cd wait

Так как операция открытия устройства чтения CD ROM может выполняться в течении нескольких секунд, имеет смысл перед продолжением работы приложения дождаться ее завершения, указав параметр wait.

При открытии драйвера CD ROM можно указать параметр shareable , в этом случае устройством смогут пользоваться одновременно несколько приложений (если они все откроют устройство с параметром shareable).

Драйвер устройства CD ROM не работает с файлами, поэтому в управляющей строке open путь к файлу не указывается.

Команда close особенностей не имеет. В качестве параметра вы должны указать имя устройства cdaudio или алиас (альтернативное имя), если устройство было открыто с использованием алиаса:

close cd

Справочные команды

Команда sysinfo не имеет особенностей. В качестве имени устройства для этой команды следует указывать строку cdaudio, даже если при открытии был использован алиас.

Для команды info можно указывать только параметр product.

С помощью команды capability с параметром can eject вы можете узнать, имеет ли устройство CD ROM возможность автоматического извлечения компакт-дисков. Вы можете также использовать и другие параметры: can play, can record, can save, compound device, device type, has audio, has video, uses files.

Для определения текущего состояния CD ROM следует использовать команду status . Вы можете указать следующие параметры:

current track

Номер текущей дорожки

length

Общая длина

length track track_number

Длина заданной дорожки

media present

Если в устройство вставлен компакт-диск, возвращается строка true

mode

Текущий режим работы: not ready (не готов), playing (проигрывание), stopped (останов), recording (запись), seeking (позиционирование)

number of tracks

Количество дорожек

position

Текущая позиция

position track track_number

Текущая позиция на заданной дорожке

ready

Если устройство готово, возвращается строка true

start position

Начальная позиция

time format

Текущий формат времени

Команды установки режима работы

Команда break не имеет никаких особенностей. Она позволяет определить код виртуальной клавиши, предназначенной для прерывания процесса выполнения команды. По умолчанию используется комбинация клавиш <Control+Break>.

Для команды set можно указывать следующие параметры:

audio all off

Отключение звукового выхода

audio all on

Включение звукового выхода

audio left off

Отключение левого канала

audio left on

Включение левого канала

audio right off

Отключение правого канала

audio right on

Включение правого канала

door closed

Загрузка компакт-диска и фиксирование его в устройстве. Этот параметр может поддерживаться не всеми устройствами (так же, как и параметр door open)

door open

Извлечение компакт-диска

time format milliseconds

В качестве единицы измерения при позиционировании используются миллисекунды. Строку milliseconds можно также указывать как ms

time format msf

В качестве единицы измерения при позиционировании используются минуты, секунды и фреймы. В качестве разделителя минут секунд и фреймов используется двоеточие. Этот формат используется по умолчанию

time format tmsf

В качестве единицы измерения при позиционировании используются дорожки, минуты, секунды и фреймы

Команды для воспроизведения, записи и позиционирования

С помощью команд этой группы можно выполнять проигрывание дорожек звукового компакт-диска, временный или полный останов, позиционирование и т. д.

play

Команда play предназначена для запуска проигрывания. Она имеет следующий формат:

play device_id [from position [to position]] [notify] [wait] 

Если не указан параметр from position, проигрывание начинается с текущей позиции. Сразу после открытия текущая позиция устанавливается в начало первой дорожки компакт-диска. Параметр to position позволяет указать конечную позицию, при достижении которого проигрывание прекращается. Перед использованием параметров from и to необходимо установить формат для позиционирования при помощи команды set.

В качестве примера приведем последовательность команд, с помощью которой выполняется проигрывание 11-ой дорожки звукового компакт-диска:

open cdaudio alias cd wait
set cd time format tmsf wait
play cd from 11 to 12 wait
close cd

Вы можете попробовать эту последовательность команд с помощью приложения MCITEST из Microsoft SDK for Windows 3.1. Загрузочный модуль приложения MCITEST есть на дискете, которая продается вместе с книгой.

Если вам нужно указать позицию внутри дорожки, используйте более полный формат времени с указанием минут и секунд. Например, следующая команда выполнит проигрывание фрагмента 11-ой дорожки, начало которого отстоит на 10 секунд от начала дорожки, а длительность составляет 5 секунд:

play cd from 11:0:10 to 11:0:15 wait

stop

Останов проигрывания

stop device_id

pause

Временный останов (пауза). Для устройства чтения CD ROM эта команда работает как команда полного останова stop, при этом команда продолжения работы после временного останова resume не поддерживается

pause device_id

seek

Позиционирование с последующим остановом. Перед использованием этой команды необходимо задать формат времени командой set time format

seek device_id parameter [notify] [wait] 

В качестве необязательного параметра parameter можно указывать одну из следующих строк:

to position

Позиционирование в заданное место компакт-диска

to start

Позиционирование в начало

to end

Позиционирование в конец

[Назад] [Содеожание] [Дальше]