随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万

提示:
参数三数组中的每一个元素代表 128 种鼓音色中的一种;
MIDI 通道用 0-15 表示, 譬如通道 9 和 15 使用了 60 号键上的音色, 数组的第 60 个元素就是 $8200.
//声明:
midiOutCacheDrumPatches(
  hMidiOut: HMIDIOUT; {设备句柄; 这个设备应该是内部合成器}
  uPatch: UINT;       {指定鼓音色号; 缺省设置为 0}
  lpwKeyArray: PWord; {TKeyArray 数组的指针; 在这个数组中指出要装入或载卸的鼓音色的键号}
  uFlags: UINT        {选项}
): MMRESULT;          {成功返回 0; 可能的错误值如下:}

MMSYSERR_INVALHANDLE  = 5{设备句柄无效}
MMSYSERR_NOMEM        = 7{没有足够的空间装入音色}
MMSYSERR_NOTSUPPORTED = 8{设备不支持}

//lpwKeyArray 相关:
PKeyArray = ^TKeyArray;
TKeyArray = array[0..MIDIPATCHSIZE-1] of Word;
{MIDIPATCHSIZE 是个常量:}
MIDIPATCHSIZE   = 128;

//uFlags:
MIDI_CACHE_ALL     = 1; {装入所有指定音色, 如果不能全装入就全放弃, 并清除音色数组, 并返回 MMSYSERR_NOMEM}
MIDI_CACHE_BESTFIT = 2; {装入所有指定音色, 如果不能全装入就尽量装, 并修改音色数组说明装了那些, 也返回 MMSYSERR_NOMEM}
MIDI_CACHE_QUERY   = 3; {修改音色数组表示正在装入哪个音色}
MIDI_UNCACHE       = 4; {载卸指定的音色, 并清除音色数组}

//举例:
posted on   万一  阅读(1729)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧


点击右上角即可分享
微信分享提示