我是一名音乐家和程序员,想创建自己的程序来制作音乐。在制作 GUI 之前,我将从 C++ 中的控制台应用程序开始。
我对 C/C++ 很陌生,知道如何制作基本的控制台应用程序,并阅读了有关 Win32 API 的内容。
我在 MSDN 上查找 Win32 应用程序中的多媒体,发现了很多 MIDI 函数:http://msdn.microsoft.com/en-us/library/dd798495 (VS.85).aspx
我可以通过这种方式接收有多少个 MIDI 设备插入:
#include <windows.h>
#include <iostream>
using namespace std;
int main() {
cout << midiInGetNumDevs();
cout << " MIDI devices connected" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但现在我想找出这些设备是如何调用的,有midiInGetID我认为的功能和while循环。有人可以帮我解决这个问题吗?该函数需要一个HMIDIIN参数,但我不知道如何获得一个参数,因为几乎所有 MIDI 函数都使用该参数。
我知道这不是最明显的主题,但如果有人可以帮助我,那就太好了。
谢谢 :)
要获取信息,请循环调用midiInGetDevCaps,第一个参数从包含 0 到排除结果不等midiInGetNumDevs。每次调用都会使用有关第 N 个设备的信息填充MIDIINCAPS结构(调用该函数时传递指向该结构的指针)。要打开设备并填充其他调用所需的 HMIDIIN,请使用设备编号(同样包括 0 到 N-1)作为第二个参数来调用midiInOpen 。
相同的概念适用于输出设备,只不过名称用Out代替In(并且结构OUT用 代替IN)。
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |