文档章节

WinAPI: midiOutOpen - 打开 MIDI 输出设备

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 360
阅读 20
收藏 0
点赞 0
评论 0
提示:
因为其中的回调函数是在中断时间内访问的, 必须在 DLL 中; 要访问的数据都必须是在固定的数据段中; 除了
PostMessage
timeGetSystemTime
timeGetTime
timeSetEvent
timeKillEvent
midiOutShortMsg
midiOutLongMsg
OutputDebugString 外, 也不能有其他系统调用.

//声明:
midiOutOpen(
  lphMidiOut: PHMIDIOUT; {用于返回设备句柄的指针; 之后再调用其他函数应该使用这个句柄}
  uDeviceID: UINT;       {设备ID; 可以指定 MIDI_MAPPER = UINT(-1);}
  dwCallback: DWORD      {回调函数地址或窗口句柄; 若不使用回调机制, 设为 nil}
  dwInstance: DWORD      {给回调函数的实例数据; 不用于窗口}
  dwFlags: DWORD         {打开选项}
): MMRESULT;             {成功返回 0; 可能的错误值见下:}

MMSYSERR_BADDEVICEID = 2;  {设备ID超界}
MMSYSERR_ALLOCATED   = 4;  {指定的资源已被分配}
MMSYSERR_NOMEM       = 7;  {不能分配或锁定内存}
MIDIERR_NOMAP        = 66; {当前没有 MIDI 映射, 只有打开映射程序才可能发生}
MIDIERR_NODEVICE     = 68; {MIDI 映射中的端口不存在, 只有打开映射程序才可能发生}

//打开选项 dwFlags 的可选值:
CALLBACK_NULL     = $00000000; {当 dwCallback 是 nil 时指定}
CALLBACK_WINDOW   = $00010000; {当 dwCallback 是窗口句柄时指定}
CALLBACK_FUNCTION = $00030000; {当 dwCallback 是函数指针时指定}

//如果选择窗口接受回调信息, 可能会发送到窗口的消息有:
MM_MOM_OPEN  = $3C7;
MM_MOM_CLOSE = $3C8;
MM_MOM_DONE  = $3C9;

//如果选择函数接受回调信息, 可能会发送给函数的消息有:
MOM_OPEN  = MM_MOM_OPEN;
MOM_CLOSE = MM_MOM_CLOSE;
MOM_DONE  = MM_MOM_DONE;

 
 
 
 
 

 

 

  
//举例:

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
Windows 音频知识学习汇总

使用低级音频函数 WaveX : http://blog.csdn.net/kvw3000/article/details/68468 控制着不同的音频设备, 包括 wave, midi 和辅助音频设备. 低级服务包括: (1) 查询音频设备. (2) 打开和关闭设...

刘军兴 ⋅ 2015/12/16 ⋅ 0

JAVA声音技术

声音可以创造意境,触发遐想,当与虚拟图像相结合时,更加可以让整个世界充满幻觉。声音是多媒体技术的基础。这就是Sun公司的JAVA媒体技术开发小组忙于准备Java Sound 1.0 API并将其包含于下...

光石头 ⋅ 2011/02/11 ⋅ 0

钢琴曲演奏软件--FreePiano

FreePiano是一款使用电脑键盘演奏钢琴音曲的开源软件。 FreePiano的特点: 完全免费的,您不需要购买就可以使用全部的功能。 直接调用VSTi音源,不需要安装虚拟MIDI设备。 支持多种音频输出方...

匿名 ⋅ 2013/05/27 ⋅ 1

MusE 2.0 发布,Linux 的虚拟演播室

MusE 2.0 发布,该版本新增分数编辑器、项目对话框和新的 MIDI 编辑对话框,对已有的功能也做了不少的改进。 MusE 是一个多轨的Linux虚拟演播室。它支持在一个集成的环境中实时MIDI和音频实时...

oschina ⋅ 2012/07/02 ⋅ 0

在 web.xml中配置实现浏览器根据文件类型自动打开

TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不必认为是浏览器的问题,大多数浏览器应该不会死皮赖脸地把二进制文件当作文本打开,一...

ybxywz ⋅ 2014/12/11 ⋅ 0

Linux虚拟演播室--MusE

MusE 是一个多轨的Linux虚拟演播室。它支持在一个集成的环境中实时MIDI和音频实时编辑。它对于LADSPA和DSSI插件(与Win VST支持),插座的支持,和alsa - MIDI输出和输入以及内部softsynths。...

匿名 ⋅ 2009/12/22 ⋅ 0

用 VC++ 编写 MIDI 文件播放程序

MIDI的意思是乐器数字接口:(Musical Instrument Digital Interface)它是早在微软开发Windows以前就有的一个用于电子键盘的标准。MIDI定义了一个传输和存储音乐信息的协议。 Win32 API 提供...

鉴客 ⋅ 2012/02/14 ⋅ 0

谷歌 Chrome 43 支持网络 MIDI 硬件

谷歌已经推出了Chrome 浏览器 43 最终版,适用于Windows,Mac和Linux,其主要新特性是支持硬件MIDI设备。Chrome浏览器43最终版支持MIDI硬件,经由一个全新的网络MIDI API来实现,它允许网站直...

oschina ⋅ 2015/05/21 ⋅ 16

免费的作曲与乐谱软件--MuseScore

MuseScore 是一个可运行在多种平台上的 WYSIWYG 的音乐制谱软件,它开源免费,遵循 GNU GPL 许可方式发布。 主要特点: WYSIWYG(所见即所得),在乐谱纸上输入音符 不限制谱表个数 多声部:...

匿名 ⋅ 2010/06/21 ⋅ 0

MuseScore 2.0 发布,音乐制谱软件

MuseScore 2.0 发布,此版本集聚了 4 年开发的结晶,超过 400 位技术贡献者和几百个用户的反馈。 下载 MuseScore 2.0 Windows Mac OS X 10.7 or higher Linux 更新内容 MuseScore 2.0 包括了...

oschina ⋅ 2015/03/25 ⋅ 6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 59分钟前 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部