midiStreamOut 函数 (mmeapi.h)

midiStreamOut 函数播放或排队流 (缓冲区) MIDI 数据到 MIDI 输出设备。

语法

MMRESULT midiStreamOut(
  HMIDISTRM hms,
  LPMIDIHDR pmh,
  UINT      cbmh
);

parameters

hms

MIDI 流的句柄。 此句柄必须已通过调用 midiStreamOpen 函数返回。 此句柄标识输出设备。

pmh

指向用于标识 MIDI 缓冲区的 MIDIHDR 结构的指针。

cbmh

MIDIHDR 结构的大小(以字节为单位)。

返回值

如果成功,则返回MMSYSERR_NOERROR,否则返回错误。 可能的错误值包括以下内容。

返回代码 说明
MMSYSERR_NOMEM
系统无法分配或锁定内存。
MIDIERR_STILLPLAYING
lpMidiHdr 指向的输出缓冲区仍在播放或从上一次调用 midiStreamOut 排队。
MIDIERR_UNPREPARED
lpMidiHdr 指向的标头尚未准备好。
MMSYSERR_INVALHANDLE
指定的设备句柄无效。
MMSYSERR_INVALPARAM
lpMidiHdr 指定的指针无效。

注解

在将缓冲区传递到 midiStreamOpen 之前,必须使用 midiOutPrepareHeader 函数对其进行准备。

由于 midiStreamOpen 函数在暂停模式下打开输出设备,因此必须先调用 midiStreamRestart 函数,然后才能使用 midiStreamOut 开始播放。

对于此函数的当前实现,缓冲区必须小于 64K。

MIDIHDR 结构指向的缓冲区包含一个或多个 MIDI 事件,每个事件都由 MIDIEVENT 结构定义。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 mmeapi.h (包括 Windows.h)
Library Winmm.lib
DLL Winmm.dll

另请参阅

MIDI 函数