2012-04-27 5 views
0

私のラップトップに接続されたMIDIデバイスからの入力を解析しようとしています。だから私は、デバイスを探して、それに接続し、そこから入力を受けたいと思っています。JavaでMIDIデバイスを読み取る

私はselect midi device in javaで始まりましたが、私はこの問題を回避するためにいくつかの問題を抱えています。 私はJavaサウンドAPIにアクセスする方法を提供するjFugueと考えましたが、私は彼らの本を持っていないので、リソースはありませんでした。 また、jMusicはいくつかの機能を提供していますが、主にmidiファイルIOであり、MIDIデバイスIOではありません。 この件に関する実用的なチュートリアルを知っていますか(おそらく、直接JavaサウンドAPIを使用しています)。

いつもと同じように、 お役に立ちましたか?

答えて

1

Java Soundチュートリアルをご覧ください:http://docs.oracle.com/javase/tutorial/sound/accessing-MIDI.html Java MIDI APIの素晴らしい説明が含まれており、デバイスの列挙方法のサンプルソースコードも含まれています。

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

// 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
  • GETデバイスのベンダーを呼び出すことで、デバイス名を取得infos[i].getVendor()
  • これが入力デバイスか出力デバイスかをチェックします(「物理」デバイスが入出力ポートを提供しているかどうかを確認してください)これらは、device.getMaxReceivers()device.getMaxTransmitters()を呼び出すことによって、Javaの2つのデバイス(入力用、出力用の2つのデバイス)として表示されます。詳細については

、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

関連する問題