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
-
后续命令将使用帧。 由 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 个放置帧 SMPTE。 由 Sequencer 和 vcr 设备类型识别。
-
MCI_FORMAT_TMSF
-
将时间格式更改为曲目、分钟、秒和帧。 (MCI 使用由 cdaudio 和 vcr 设备类型识别的连续跟踪数字。) 。
-
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 [仅限桌面应用] |
标头 |
|