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

5b239685

MCI_SET


Команда MCI_SET предназначена для установки режима работы устройства. Вместе с этой командой используется блок параметров в формате структуры MCI_SET_PARMS :

typedef struct tagMCI_SET_PARMS { DWORD dwCallback; DWORD dwTimeFormat; DWORD dwAudio; } MCI_SET_PARMS; typedef MCI_SET_PARMS FAR *LPMCI_SET_PARMS;

Поле dwTimeFormat определяет формат времени для устройства, поле dwAudio определяет выходной канал.

Для звуковых устройств можно использовать другую структуру:

typedef struct tagMCI_WAVE_SET_PARMS { DWORD dwCallback; DWORD dwTimeFormat; DWORD dwAudio; UINT wInput; UINT wReserved0; UINT wOutput; UINT wReserved1; UINT wFormatTag; UINT wReserved2; UINT nChannels; UINT wReserved3; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; UINT nBlockAlign; UINT wReserved4; UINT wBitsPerSample; UINT wReserved5; } MCI_WAVE_SET_PARMS; typedef MCI_WAVE_SET_PARMS FAR * LPMCI_WAVE_SET_PARMS;

В этой структуре поле wInput определяет номер канала для записи, wOutput - номер канала для воспроизведения. Поле wFormatTag используется для определения формата звуковых данных. С помощью поля nChannels можно указать количество каналов - 1 (моно) или 2 (стерео). Поле nSamplesPerSec предназначено для задания частоты дискретизации (количество выборок сигнала в секунду). Поле nAvgBytesPerSec содержит скорость передачи данных (байты в секунду). С помощью поля nBlockAlign можно задать выравнивание блока, а с помощью поля wBitsPerSample - количество бит, используемых для представления одной выборки (8 или 16). Остальные поля зарезервированы.

Приведем список флагов, которые используются вместе с командой MCI_SET:



Флаг Описание
MCI_NOTIFY Если установлен этот флаг, после завершения команды функции окна, адрес которой передан через поле dwCallback, будет послано сообщение MM_MCINOTIFY
MCI_WAIT Функция mciSendCommand вернет управление только после завершения процесса
MCI_SET_AUDIO Включение или выключение каналов, используется вместе с флагами MCI_SET_ON и MCI_SET_OFF. Поле dwAudio содержит номера канала. Дополнительно можно указать следующие константы:MCI_SET_AUDIO_ALL все каналыMCI_SET_AUDIO_LEFT левый каналMCI_SET_AUDIO_RIGHT правый канал
MCI_SET_DOOR_CLOSED По этой команде устройство защелкивает носитель данных (например, компакт-диск)
MCI_SET_DOOR_OPEN Освобождение носителя данных
MCI_SET_VIDEO Включение или выключение видеосигнала, используется вместе с флагами MCI_SET_ON и MCI_SET_OFF
MCI_SET_ON Включение заданного канала
MCI_SET_OFF Выключение заданного канала
MCI_WAVE_INPUT Установка канала для записи. Номер канала должен быть указан в поле wInput структуры MCI_WAVE_SET_PARAMS
MCI_WAVE_OUTPUT Установка канала для воспроизведения. Номер канала должен быть указан в поле wInput структуры MCI_WAVE_SET_PARAMS
MCI_WAVE_SET_ANYINPUT При записи следует использовать любое устройство, совместимое с заданным форматом данных
MCI_WAVE_SET_ANYOUTPUT При воспроизведении следует использовать любое устройство, совместимое с заданным форматом данных
MCI_WAVE_SET_AVGBYTESPERSEC Установить скорость потока данных при записи и воспроизведении из поля nAvgBytesPerSec
MCI_WAVE_SET_BITSPERSAMPLE Установить количество бит, используемых для представления одной выборки сигнала из поля wBitsPerSample
MCI_WAVE_SET_BLOCKALIGN Установить выравнивание блока из поля nBlockAlign
MCI_WAVE_SET_CHANNELS Поле nChannels содержит номер канала
MCI_WAVE_SET_FORMATTAG Установить формат из поля wFormatTag
MCI_WAVE_SET_SAMPLESPERSEC Установить частоту выборки из поля nSamplesPerSec
MCI_WAVE_SET_TIME_FORMAT Установить формат времени. Используется вместе со следующими константами:MCI_FORMAT_BYTES в байтах;MCI_FORMAT_MILLISECONDS в миллисекундах;MCI_FORMAT_SAMPLES в выборках сигнала



Содержание раздела