команда MCI_SET

Примечание

Связь без предубеждений Майкрософт поддерживает разнообразную и инклюзивную среду. В этом документе есть ссылки на слово "slave". Руководство майкрософт по стилю для Bias-Free Communications распознает это как исключаемое слово. Эта формулировка используется в настоящее время в командах. Для обеспечения согласованности этот документ содержит это слово. При изменении этого слова в командах мы исправим этот документ так, чтобы он был в выравнивании.

Команда MCI_SET задает сведения об устройстве. Эта команда распознана на устройствах cd audio, digital-video, MIDI sequencer, VCR, videodisc, video-overlay и waveform-audio.

Чтобы отправить эту команду, вызовите функцию mciSendCommand со следующими параметрами.

MCIERROR mciSendCommand(
  MCIDEVICEID wDeviceID, 
  MCI_SET, 
  DWORD dwFlags, 
  (DWORD) (LPMCI_SET_PARMS) lpSet
);

Параметры

wDeviceID

Идентификатор устройства MCI, которое получает сообщение команды.

Dwflags

MCI_NOTIFY, MCI_WAIT или для устройств с цифровым видео и виртуальным MCI_TEST. Сведения об этих флагах см. в разделе Флаги ожидания, уведомления и тестирования.

lpSet

Указатель на структуру MCI_SET_PARMS . (Устройства с расширенными наборами команд могут заменить эту структуру структурой для конкретного устройства.)

Возвращаемое значение

Возвращает ноль в случае успешного выполнения или ошибку в противном случае.

Комментарии

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

MCI_SET_AUDIO

Номер звукового канала включается в элемент dwAudio структуры, определяемой lpSet. Этот флаг должен использоваться с MCI_SET_ON или MCI_SET_OFF. Используйте одну из следующих констант, чтобы указать номер канала:

MCI_SET_AUDIO_ALL

Все аудиоканалы.

MCI_SET_AUDIO_LEFT

Левый канал.

MCI_SET_AUDIO_RIGHT

Правый канал.

MCI_SET_DOOR_CLOSED

Закрывает обложку носителя (если она есть).

MCI_SET_DOOR_OPEN

Открывает обложку мультимедиа (если она есть).

MCI_SET_OFF

Отключает указанный видео- или аудиоканалов.

MCI_SET_ON

Включает указанный видео- или звуковой канал.

MCI_SET_TIME_FORMAT

Параметр формата времени включается в элемент dwTimeFormat структуры, определяемой lpSet. С этим флагом используются следующие флаги:

MCI_FORMAT_BYTES

В формате данных PCM (Пульсовая модуляция кода) изменяет описание элемента времени на байты для входных или выходных данных. Распознается типом устройства waveaudio .

MCI_FORMAT_FRAMES

Последующие команды будут использовать кадры. Распознается типами устройств digitalvideo, vcr и videodisc .

MCI_FORMAT_HMS

Изменяет формат времени на часы, минуты и секунды. Распознается типами устройств vcr и videodisc .

MCI_FORMAT_MILLISECONDS

Изменяет формат времени на миллисекундах. Распознается всеми типами устройств.

MCI_FORMAT_MSF

Изменяет формат времени на минуты, секунды и кадры. Распознается типами устройств cdaudio и vcr .

MCI_FORMAT_SAMPLES

Изменяет формат времени на примеры для входных или выходных данных. Распознается типом устройства waveaudio .

MCI_FORMAT_SMPTE_24, MCI_FORMAT_SMPTE_25 и MCI_FORMAT_SMPTE_30

Устанавливает формат времени 24, 25 и 30 кадров SMPTE (Общество кинематографических и телевизионных инженеров) соответственно. Распознается типами устройств sequencer и vcr .

MCI_FORMAT_SMPTE_30DROP

Задает формат времени 30 drop-frame SMPTE. Распознается типами устройств sequencer и vcr .

MCI_FORMAT_TMSF

Изменяет формат времени на дорожки, минуты, секунды и кадры. (MCI использует непрерывные номера отслеживания.) Распознается типами устройств cdaudio и vcr .

MCI_SET_VIDEO

Задает включение или отключение видеосигнала. Этот флаг должен использоваться с MCI_SET_ON или MCI_SET_OFF. Устройства без видео возвращают MCIERR_UNSUPPORTED_FUNCTION.

Следующие дополнительные флаги используются с типом устройства digitalvideo :

MCI_DGV_SET_FILEFORMAT

Параметр формата файла включается в элемент dwFileFormat структуры, определяемой lpSet. Для цифровых видеоустройств формат файла используется для команд сохранения или записи. Если этот параметр опущен, по умолчанию может использоваться формат, определенный драйвером устройства. Если указанный формат файла конфликтует с выбранным в данный момент алгоритмом и качеством, они изменяются на значения по умолчанию для формата файла. Определены следующие константы формата файла:

MCI_DGV_FF_AVI

Формат AVI.

MCI_DGV_FF_AVSS

Формат AVSS.

MCI_DGV_FF_DIB

Формат DIB.

MCI_DGV_FF_JFIF

Формат JFIF.

MCI_DGV_FF_JPEG

Формат JPEG.

MCI_DGV_FF_MPEG

Формат MPEG.

MCI_DGV_FF_RDIB

Формат DIB RLE.

MCI_DGV_FF_RJPEG

Формат RJPEG.

MCI_DGV_SET_SEEK_EXACTLY

Задает формат, используемый для позиционирования. Этот флаг должен использоваться с MCI_SET_ON или MCI_SET_OFF. Если указан MCI_SET_ON, воспроизведение или запись точно обращается к кадру, указанному с флагом MCI_FROM. Это может добавить дополнительную задержку, если запрошенный кадр не является ключевым кадром. Если указано MCI_SET_OFF, устройство будет искать изображение ключевого кадра, которое предшествует запрошенному кадру. Для некоторых файлов и устройств это может быть первый кадр файла. Значение по умолчанию для этого флага зависит от устройства.

MCI_DGV_SET_SPEED

Параметр скорости включается в элемент dwSpeed структуры, определяемой lpSet. Скорость указывается как отношение между номинальной частотой кадров и требуемой частотой кадров, где номинальная частота кадров обозначается как 1000. Половина скорости — 500, а двойная скорость — 2000. Допустимый диапазон скорости зависит от устройства и, возможно, файла.

MCI_DGV_SET_STILL

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

Для цифровых видеоустройств параметр lpSet указывает на структуру MCI_DGV_SET_PARMS .

Следующие дополнительные флаги используются с типом устройства sequencer :

MCI_SEQ_FORMAT_SONGPTR

Задает формат времени для единиц указателя песни.

MCI_SEQ_SET_MASTER

Задает секвенсор в качестве источника данных синхронизации и указывает, что тип синхронизации указан в элементе dwMaster структуры, определяемой lpSet. MCISEQ возвращает MCIERR_UNSUPPORTED_FUNCTION. Для типа синхронизации определяются следующие константы:

MCI_SEQ_MIDI

Секвенсор отправит данные синхронизации формата MIDI.

MCI_SEQ_SMPTE

Секвенсор отправит данные синхронизации формата SMPTE.

MCI_SEQ_NONE

Секвенсор не будет отправлять данные синхронизации.

MCI_SEQ_SET_OFFSET

Изменяет смещение SMPTE последовательности на указанное элементом dwOffset структуры, определяемой lpSet. Это влияет только на последовательности с типом деления SMPTE.

MCI_SEQ_SET_PORT

Задает выходной MIDI-порт последовательности, указанный идентификатором устройства MIDI в элементе dwPort структуры, определяемой lpSet. Устройство закрывает предыдущий порт (если таковой есть) и пытается открыть и использовать новый порт. В случае сбоя он возвращает ошибку и повторно открывает ранее использованный порт (если таковой есть). Для портов определяются следующие константы:

MCI_SEQ_NONE

Закрывает ранее использованный порт (при наличии). Sequencer ведет себя точно так же, как если бы порт был открыт, за исключением того, что сообщение MIDI не отправляется.

MIDI_MAPPER

Задает открытый порт для модуля сопоставления MIDI.

MCI_SEQ_SET_SLAVE

Задает секвенсор для получения данных синхронизации и указывает, что тип синхронизации указан в элементе dwSlave структуры, определяемой lpSet. MCISEQ возвращает MCIERR_UNSUPPORTED_FUNCTION. Для типа синхронизации определяются следующие константы:

MCI_SEQ_FILE

Задает sequencer для получения данных синхронизации, содержащихся в MIDI-файле.

MCI_SEQ_MIDI

Задает секвенсор для получения данных синхронизации MIDI.

MCI_SEQ_NONE

Задает секвенсор, чтобы игнорировать данные синхронизации в потоке MIDI.

MCI_SEQ_SMPTE

Задает секвенсор для получения данных синхронизации SMPTE.

MCI_SEQ_SET_TEMPO

Изменяет темп последовательности MIDI на заданный элементом dwTempo структуры, на которую указывает lpSet. Для последовательностей с типом деления PPQN темп задается в битах в минуту; Для последовательностей с типом деления SMPTE tempo указывается в кадрах в секунду.

Для устройств sequencer параметр lpSet указывает на структуру MCI_SEQ_SET_PARMS .

Следующие дополнительные флаги используются с типом устройства vcr :

MCI_VCR_SET_ASSEMBLE_RECORD

Задает устройство для записи в режиме сборки или вставки (если сборка выключена, вставка включена и наоборот). Используйте с одним из следующих флагов:

MCI_SET_ON

Устанавливает сборку записи в и отключает вставку записи. Записывает все дорожки видео, аудио и кода времени.

MCI_SET_OFF

Устанавливает сборку записи и включает вставку записи. Если запись сборки отключена, для записи можно выбрать отдельные дорожки видео, аудио и код времени.

MCI_VCR_SET_CLOCK

Элемент dwClock структуры, определяемой lpSet , содержит новое время.

MCI_VCR_SET_COUNTER_FORMA

Элемент dwCounterFormat структуры, определяемой lpSet , содержит константу, задающую новый формат счетчика времени, используемый счетчиком состояния. Список допустимых констант см. в разделе MCI_SET_TIME_FORMAT в списке дополнительных флагов для этой команды.

MCI_VCR_SET_COUNTER_VALUE

Элемент dwCounterValue структуры, определяемой lpSet , содержит новое значение счетчика.

MCI_VCR_SET_INDEX

Элемент dwIndex структуры, определяемой lpSet , содержит константу, указывающую содержимое экранного экрана, и должен быть одним из следующих элементов:

MCI_VCR_INDEX_COUNTER

Отображает счетчик.

MCI_VCR_INDEX_DATE

Отображает дату.

MCI_VCR_INDEX_TIME

Отображает время.

MCI_VCR_INDEX_TIMECODE

Отображает код времени.

Дополнительные сведения см. в разделе команда MCI_INDEX .

MCI_VCR_SET_PAUSE_TIMEOUT

Элемент dwPauseTimeout структуры, определяемой lpSet , содержит максимальную длительность команды приостановки в миллисекундах.

MCI_VCR_SET_POSTROLL_DURATION

Элемент dwPostrollDuration структуры, определяемой lpSet , содержит длину видеокассеты в формате текущего времени, необходимую для остановки транспорта VCR при выполнении команды остановки или приостановки.

MCI_VCR_SET_POWER

Устанавливает включение или выключение питания. Должен использоваться с одним из следующих флагов:

MCI_SET_OFF

Выключение питания.

MCI_SET_ON

Включает питание.

MCI_VCR_SET_PREROLL_DURATION

Элемент dwPrerollDuration структуры, определяемой lpSet , содержит длину видеокассеты в формате текущего времени, необходимую для стабилизации выходных данных VCR.

MCI_VCR_SET_RECORD_FORMAT

Элемент dwRecordFormat структуры, определяемой lpSet , содержит константу, описывающую скорость записи, которая должна быть одной из следующих:

MCI_VCR_FORMAT_EP

Записи на медленной скорости.

MCI_VCR_FORMAT_LP

Записи со средней и медленной скоростью.

MCI_VCR_FORMAT_SP

Записи со стандартной скоростью.

MCI_VCR_SET_SPEED

Элемент dwSpeed структуры, определяемой lpSet , содержит новый параметр скорости, где 1000 — это нормальная скорость, 2000 — двойная скорость, а 500 — половина скорости и т. д.

MCI_VCR_SET_TAPE_LENGTH

Элемент dwTapeLength структуры, определяемой lpSet , содержит новую длину ленты при условии, что длина ленты не обнаружена.

MCI_VCR_SET_TIME_MODE

Элемент dwTimeMode структуры, определяемой lpSet , содержит константу, указывающую на новый режим позиционного времени. Допустимы следующие константы:

MCI_VCR_TIME_COUNTER

Заставляет устройство использовать исключительно счетчик.

MCI_VCR_TIME_DETECT

Каждый раз, когда в устройство вставляется новая видеокаспа или режим меняется с не готовой на готовую, устройство должно пытаться определить, есть ли в ней доступный код времени. Если код времени доступен, используйте его во всех последующих командах, определяющих позиции. В противном случае используйте счетчик.

MCI_VCR_TIME_TIMECODE

Заставляет устройство использовать исключительно код времени.

MCI_VCR_SET_TRACKING

Настраивает скорость транспорта ленты VCR с точной корректировкой и должен использоваться с одним из следующих флагов:

MCI_VCR_PLUS

Увеличивает скорость транспортировки ленты.

MCI_VCR_MINUS

Снижает скорость транспортировки ленты.

MCI_VCR_RESET

Возвращает корректировку отслеживания к нулю.

Для устройств VCR параметр lpSet указывает на структуру MCI_VCR_SET_PARMS .

Следующий дополнительный флаг используется с типом устройства videodisc :

MCI_VD_FORMAT_TRACK

Изменяет формат времени на дорожки. MCI использует непрерывные номера отслеживания.

Следующие дополнительные флаги используются с типом устройства waveaudio :

MCI_WAVE_INPUT

Задает входные данные, используемые для записи, для элемента wInput структуры, определяемой lpSet.

MCI_WAVE_OUTPUT

Задает выходные данные, используемые для воспроизведения, для элемента wOutput структуры, определяемой lpSet.

MCI_WAVE_SET_ANYINPUT

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

MCI_WAVE_SET_ANYOUTPUT

Для воспроизведения можно использовать любой волновой выход, совместимый с текущим форматом.

MCI_WAVE_SET_AVGBYTESPERSEC

Задает байты в секунду, используемые для воспроизведения, записи и сохранения, в член nAvgBytesPerSec структуры, определяемой lpSet.

MCI_WAVE_SET_BITSPERSAMPLE

Задает биты на выборку, используемые для воспроизведения, записи и сохранения, в член nBitsPerSample формата данных PCM, определяемого lpSet.

MCI_WAVE_SET_BLOCKALIGN

Задает выравнивание блоков, используемое для воспроизведения, записи и сохранения в элементе nBlockAlign структуры, определяемой lpSet.

MCI_WAVE_SET_CHANNELS

Число каналов указывается в элементе nChannels структуры, определяемой lpSet.

MCI_WAVE_SET_FORMATTAG

Задает тип формата, используемый для воспроизведения, записи и сохранения в элементе wFormatTag структуры, определяемой lpSet. При указании WAVE_FORMAT_PCM формат изменяется на PCM.

MCI_WAVE_SET_SAMPLESPERSEC

Задает количество примеров в секунду, используемых для воспроизведения, записи и сохранения в элементе nSamplesPerSec структуры, определяемой lpSet.

Для устройств waveform-audio параметр lpSet указывает на структуру MCI_WAVE_SET_PARMS .

При создании файла для хранения данных определяется несколько свойств данных waveform-audio. Эти свойства описывают структуру данных в файле и их невозможно изменить после начала записи. Следующие флаги идентифицируют эти свойства:

  • MCI_WAVE_SET_AVGBYTESPERSEC
  • MCI_WAVE_SET_BITSPERSAMPLE
  • MCI_WAVE_SET_BLOCKALIGN
  • MCI_WAVE_SET_CHANNELS
  • MCI_WAVE_SET_FORMATTAG
  • MCI_WAVE_SET_SAMPLESPERSEC

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Mmsystem.h (включая Windows.h)

См. также раздел

MCI

Команды MCI