MCI_SET 命令

注意

无偏见的通信 Microsoft 支持多样化和包容性的环境。 本文档中引用了“slave”一词。 Microsoft 的 《Bias-Free通信风格指南 》将此视为排除词。 使用此措辞,因为它是命令中当前使用的措辞。 为保持一致,本文档包含此单词。 当命令中更改此单词时,我们将更正此文档以保持对齐。

MCI_SET 命令设置设备信息。 CD 音频、数字视频、MIDI 排序器、VCR、videodisc、视频覆盖和波形音频设备可识别此命令。

若要发送此命令,请使用以下参数调用 mciSendCommand 函数。

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

parameters

wDeviceID

要接收命令消息的 MCI 设备的设备标识符。

dwFlags

MCI_NOTIFY、MCI_WAIT,或者,对于数字视频和 VCR 设备,MCI_TEST。 有关这些标志的信息,请参阅 等待、通知和测试标志

lpSet

指向 MCI_SET_PARMS 结构的指针。 具有扩展命令集 (设备可能会将此结构替换为特定于设备的结构。)

返回值

如果成功,则返回零,否则返回错误。

备注

以下附加标志适用于支持MCI_SET的所有设备:

MCI_SET_AUDIO

音频通道编号包含在 由 lpSet 标识的 结构的 dwAudio 成员中。 此标志必须与 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

时间格式参数包含在由 lpSet 标识的 结构的 dwTimeFormat 成员中。 以下标志与此标志一起使用:

MCI_FORMAT_BYTES

在 PCM (脉冲编码调制) 数据格式中,将时间成员描述更改为输入或输出的字节。 由 waveaudio 设备类型识别。

MCI_FORMAT_FRAMES

后续命令将使用帧。 由 digitalvideovcrvideodisc 设备类型识别。

MCI_FORMAT_HMS

将时间格式更改为小时、分钟和秒。 由 vcrvideodisc 设备类型识别。

MCI_FORMAT_MILLISECONDS

将时间格式更改为毫秒。 由所有设备类型识别。

MCI_FORMAT_MSF

将时间格式更改为分钟、秒和帧。 由 cdaudiovcr 设备类型识别。

MCI_FORMAT_SAMPLES

将时间格式更改为输入或输出的样本。 由 waveaudio 设备类型识别。

MCI_FORMAT_SMPTE_24、MCI_FORMAT_SMPTE_25和MCI_FORMAT_SMPTE_30

将时间格式分别设置为 24、25 和 30 帧 SMPTE (电影和电视工程师协会) 。 由 Sequencervcr 设备类型识别。

MCI_FORMAT_SMPTE_30DROP

将时间格式设置为 30 个放置帧 SMPTE。 由 Sequencervcr 设备类型识别。

MCI_FORMAT_TMSF

将时间格式更改为曲目、分钟、秒和帧。 (MCI 使用由 cdaudiovcr 设备类型识别的连续跟踪数字。) 。

MCI_SET_VIDEO

设置视频信号的打开或关闭。 此标志必须与 MCI_SET_ON 或 MCI_SET_OFF 一起使用。 没有视频的设备返回MCIERR_UNSUPPORTED_FUNCTION。

以下附加标志用于 数字视频 设备类型:

MCI_DGV_SET_FILEFORMAT

文件格式参数包含在由 lpSet 标识的结构的 dwFileFormat 成员中。 对于数字视频设备,文件格式用于保存或捕获命令。 如果省略,则可能默认使用设备驱动程序定义的格式。 如果指定的文件格式与当前所选算法和质量冲突,则它们将更改为文件格式的默认值。 定义了以下文件格式常量:

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

RLE DIB 格式。

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

速度参数包含在由 lpSet 标识的 结构的 dwSpeed 成员中。 速度指定为标称帧速率与所需帧速率之间的比率,其中标称帧速率指定为 1000。 半速为 500,双速为 2000。 允许的速度范围取决于设备,也可能取决于文件。

MCI_DGV_SET_STILL

与 MCI_DGV_SET_FILEFORMAT 一起使用时,MCI_SET设置用于捕获命令的文件格式。

对于数字视频设备, lpSet 参数指向 MCI_DGV_SET_PARMS 结构。

以下附加标志用于 排序器 设备类型:

MCI_SEQ_FORMAT_SONGPTR

将时间格式设置为歌曲指针单位。

MCI_SEQ_SET_MASTER

将 sequencer 设置为同步数据的源,并指示同步的类型在 lpSet 标识的 结构的 dwMaster 成员中指定。 MCISEQ 返回MCIERR_UNSUPPORTED_FUNCTION。 为同步类型定义了以下常量:

MCI_SEQ_MIDI

排序器将发送 MIDI 格式同步数据。

MCI_SEQ_SMPTE

Sequencer 将发送 SMPTE 格式同步数据。

MCI_SEQ_NONE

Sequencer 不会发送同步数据。

MCI_SEQ_SET_OFFSET

将序列的 SMPTE 偏移量更改为由 lpSet 标识的结构的 dwOffset 成员指定的偏移量。 这仅影响具有 SMPTE 除法类型的序列。

MCI_SEQ_SET_PORT

将序列的输出 MIDI 端口设置为由 lpSet 标识的结构的 dwPort 成员中的 MIDI 设备标识符指定的端口。 如果有任何) ,设备关闭以前的端口 (,并尝试打开并使用新端口。 如果失败,它将返回错误,并重新打开以前使用的端口 ((如果有任何) )。 为端口定义了以下常量:

MCI_SEQ_NONE

关闭以前使用的端口 ((如果有任何) )。 除未发送 MIDI 消息外,Sequencer 的行为与端口打开时的行为完全相同。

MIDI_MAPPER

将打开的端口设置为 MIDI 映射器。

MCI_SEQ_SET_SLAVE

设置 sequencer 以接收同步数据,并指示同步类型在 lpSet 标识的 结构的 dwSlave 成员中指定。 MCISEQ 返回MCIERR_UNSUPPORTED_FUNCTION。 为同步类型定义了以下常量:

MCI_SEQ_FILE

设置 Sequencer 以接收 MIDI 文件中包含的同步数据。

MCI_SEQ_MIDI

设置序列器以接收 MIDI 同步数据。

MCI_SEQ_NONE

将 Sequencer 设置为忽略 MIDI 流中的同步数据。

MCI_SEQ_SMPTE

设置序列器以接收 SMPTE 同步数据。

MCI_SEQ_SET_TEMPO

将 MIDI 序列的节奏更改为由 lpSet 指向的结构的 dwTempo 成员指定的节奏。 对于除法类型为 PPQN 的序列,节奏以每分钟的节拍数指定;对于除法类型为 SMPTE 的序列,以帧/秒为单位指定节奏。

对于 sequencer 设备, lpSet 参数指向 MCI_SEQ_SET_PARMS 结构。

以下附加标志用于 vcr 设备类型:

MCI_VCR_SET_ASSEMBLE_RECORD

将设备设置为在程序集关闭、插入处于打开状态和) 时 (以装配模式或插入模式进行记录。 使用以下标志之一:

MCI_SET_ON

将汇编记录设置为打开,并关闭插入记录。 记录所有视频、音频和时间代码曲目。

MCI_SET_OFF

将汇编记录设置为关闭,并打开插入记录。 当汇编录制关闭时,可以选择单个视频、音频和时间代码轨道进行录制。

MCI_VCR_SET_CLOCK

由 lpSet 标识的 结构的 dwClock 成员包含新的时钟时间。

MCI_VCR_SET_COUNTER_FORMA

由 lpSet 标识的结构的 dwCounterFormat 成员包含一个常量,该常量指定要由状态计数器使用的新计数器时间格式。 有关有效常量的列表,请参阅此命令的其他标志列表中的MCI_SET_TIME_FORMAT。

MCI_VCR_SET_COUNTER_VALUE

由 lpSet 标识的 结构的 dwCounterValue 成员包含新的计数器值。

MCI_VCR_SET_INDEX

由 lpSet 标识的 结构的 dwIndex 成员包含一个常量,该常量指示屏幕上显示的内容,并且必须是下列值之一:

MCI_VCR_INDEX_COUNTER

显示计数器。

MCI_VCR_INDEX_DATE

显示日期。

MCI_VCR_INDEX_TIME

显示时间。

MCI_VCR_INDEX_TIMECODE

显示时间代码。

有关详细信息,请参阅 MCI_INDEX 命令。

MCI_VCR_SET_PAUSE_TIMEOUT

由 lpSet 标识的 结构的 dwPauseTimeout 成员包含暂停命令的最大持续时间(以毫秒为单位)。

MCI_VCR_SET_POSTROLL_DURATION

由 lpSet 标识的结构的 dwPostrollDuration 成员包含在发出停止或暂停命令时刹车 VCR 传输所需的视频带长度(以当前时间格式表示)。

MCI_VCR_SET_POWER

设置开机或关机。 必须与以下标志之一一一起使用:

MCI_SET_OFF

关闭电源。

MCI_SET_ON

打开电源。

MCI_VCR_SET_PREROLL_DURATION

lpSet 标识的 结构的 dwPrerollDuration 成员包含稳定 VCR 输出所需的当前时间格式的录像带长度。

MCI_VCR_SET_RECORD_FORMAT

由 lpSet 标识的 结构的 dwRecordFormat 成员包含描述记录速度的常量,该常量必须是下列值之一:

MCI_VCR_FORMAT_EP

以慢速记录。

MCI_VCR_FORMAT_LP

以中慢速记录。

MCI_VCR_FORMAT_SP

以标准速度记录。

MCI_VCR_SET_SPEED

由 lpSet 标识的结构的 dwSpeed 成员包含新的速度设置,其中 1000 是正常速度,2000 是双倍速度,500 是半速,依此而过。

MCI_VCR_SET_TAPE_LENGTH

lpSet 标识的结构的 dwTapeLength 成员包含磁带的新长度,前提是磁带的长度不可检测到。

MCI_VCR_SET_TIME_MODE

由 lpSet 标识的 结构的 dwTimeMode 成员包含一个常量,该常量指示新的位置时间模式。 以下常量有效:

MCI_VCR_TIME_COUNTER

强制设备以独占方式使用计数器。

MCI_VCR_TIME_DETECT

每次将新录像带插入设备,或模式从“未就绪”更改为“就绪”时,设备应尝试确定录像带上是否有时间码可用。 如果 timecode 可用,请在指定位置的所有后续命令中使用 timecode。 否则,请使用 计数器。

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

将用于记录的输入设置为由 lpSet 标识的 结构的 wInput 成员。

MCI_WAVE_OUTPUT

设置用于播放到由 lpSet 标识的 结构的 wOutput 成员的输出。

MCI_WAVE_SET_ANYINPUT

任何与当前格式兼容的波形输入都可用于录制。

MCI_WAVE_SET_ANYOUTPUT

任何与当前格式兼容的波形输出都可用于播放。

MCI_WAVE_SET_AVGBYTESPERSEC

设置每秒用于播放、录制和保存到由 lpSet 标识的结构的 nAvgBytesPerSec 成员的字节数。

MCI_WAVE_SET_BITSPERSAMPLE

设置每个样本用于播放、录制和保存到 lpSet 标识的 PCM 数据格式的 nBitsPerSample 成员的位数。

MCI_WAVE_SET_BLOCKALIGN

设置用于播放、录制和保存到由 lpSet 标识的结构的 nBlockAlign 成员的块对齐方式。

MCI_WAVE_SET_CHANNELS

通道数在由 lpSet 标识的结构的 nChannels 成员中指示。

MCI_WAVE_SET_FORMATTAG

设置用于播放、录制和保存到由 lpSet 标识的结构的 wFormatTag 成员的格式类型。 指定WAVE_FORMAT_PCM将格式更改为 PCM。

MCI_WAVE_SET_SAMPLESPERSEC

设置每秒用于播放、录制和保存到由 lpSet 标识的结构的 nSamplesPerSec 成员的样本数。

对于波形音频设备, lpSet 参数指向 MCI_WAVE_SET_PARMS 结构。

创建用于存储数据的文件时,会定义波形音频数据的多个属性。 这些属性描述数据在文件中的结构,在开始记录后无法更改。 以下标志列表标识这些属性:

  • 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 命令