0

ラップトップに接続された MIDI デバイスからの入力を解析しようとしています。そのため、デバイスを見つけて接続し、そこから入力を受け取りたいと考えています。

は java で選択した midi デバイスから始めましたが、これを回避するのに苦労しています。JavaサウンドAPIにアクセスする方法を提供するjFugueを検討しましたが、本を持っていないため、リソースがありませんでした。また、jMusic はいくつかの機能を提供しますが、ほとんどが midi ファイル IO 用であり、midi デバイス IO 用ではありません。それで、この件に関する実用的なチュートリアルを知っていますか(おそらくJavaサウンドAPIを直接使用しています)。

いつものように、どんな助けも大歓迎です!

4

1 に答える 1

2

Java Soundチュートリアルを参照してください。

次のサンプル ソース コードがあります。

// Obtain information about all the installed synthesizers.
Vector synthInfos;
MidiDevice device;
MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
for (int i = 0; i < infos.length; i++) {
  try {
    device = MidiSystem.getMidiDevice(infos[i]);
  } catch (MidiUnavailableException e) {
      // Handle or throw exception...
  }
  if (device instanceof Synthesizer) {
    synthInfos.add(infos[i]);
  }
}
// Now, display strings from synthInfos list in GUI. 

MIDI デバイスを取得すると、次のことができます (以前のソース コードで)

  • 呼び出してデバイス名を取得するinfos[i].getName
  • を呼び出してデバイス ベンダーを取得するinfos[i].getVendor()
  • device.getMaxReceivers()およびを呼び出して、これが入力デバイスか出力デバイスかを確認します (1 つの「物理的」デバイスが入力ポートと出力ポートを提供する場合、それらは Java では 2 つのデバイスとして認識され、1 つは入力用、もう 1 つは出力用です) device.getMaxTransmitters()

詳細については、API ドキュメントを参照してください: - http://docs.oracle.com/javase/1.5.0/docs/api/javax/sound/midi/MidiDevice.html - http://docs.oracle.com/javase /1.5.0/docs/api/javax/sound/midi/MidiDevice.Info.html

于 2012-10-01T14:10:10.953 に答える