Мультимедиа под контролем или Функция mciSendString
05.12.2007 от Иван Ширко В данной статье рассматривается функция mciSendString, которая находится в библиотеке winmm.dll. Эта функция может подавать команды любому MCI (Media Control Interface) устройству (поддерживаемое системой мультимедиа устройство: WAV, MIDI, CDAudio, Video и т.п.).
Вот её синтаксис:
MCIERROR mciSendString(
LPCTSTR lpszCommand,
LPTSTR lpszReturnString,
UINT cchReturn,
HANDLE hwndCallback
);
lpszCommand – команда;
lpszReturnString – строка результата;
cchReturn – размер в символах строки результата;
hwndCallback – окно отзыва (используется только при установленном в первом параметре флага "notify").
Все дальнейшие примеры будут написаны на Delphi, но их перевод на другие языки, я думаю, не составит особого труда.
Теперь условимся с параметрами функция mciSendString в последующих примерах:
-
HwndCallback: будет принимать значение 0;
-
CchReturn: будет принимать значение 64 (в MSDN написано, что это максимальная длина ошибки, которая может быть возвращена параметром lpszReturnString);
-
LpszReturnString: в этом параметре будем использовать переменную sbReturn: array [1..64] of char;
Пришло время перейти к самому главному параметру функции – lpszCommand. Эта команда составляется при помощи специальных операторов, часть которых рассматривается далее.
Open
Эта команда поддерживается всеми устройствами. Она служит для инициализации устройства. Синтаксис команды:
'open lpszDeviceID lpszOpenFlags lpszFlags'
Параметры:
LpszDeviceID – идентификатор одного из устройств (или его псевдоним), прописанных в разделе [MCI] файла System.ini или в реестре. Может указывать также на драйвер. Например: cdaudio, sequencer, waveaudio, MyDriver.drv.
LpszOpenFlags – флаг, определяющий дополнительные параметры инициализации устройства. Я не буду приводить весь список значений этого параметра для каждого устройства, а упомяну лишь значение "alias device_alias type device_type", которое открывает устройство типа device_type под псевдонимом device_alias.
LpszFlags – может принимать одно из следующих значений:
- Test – служит для определения возможности выполнения команды, при этом сама команда устройству не отправляется.
- Wait – при этом флаге управление программе передаётся только после выполнения команды.
- Notify – при этом флаге программа получит специальное сообщение, при помощи которого сможет узнать о завершении выполнения команды, а управление передаётся без промедления.
Пример:
Рубрики: Delphi |
02.06.2008 в 15:27
Классно!
13.05.2009 в 13:35
Здравствуйте. Спасибо большое. Пишу только-только взглянув на статью(точнее скопировав себе для дальнейшего ознакомления =) ), но даже на первый взгляд очень информативная и удобочитаемая! (тем более, если Алексей Николаевич Родионов пишет, что “Классно!”, то мне точно понравится))))
Я как раз пишу курсовую работу по обработке звука.Спасибо большое.