|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface MidiDevice
MidiDevice
は、すべての MIDI デバイスのための基底インタフェースです。よく使われるデバイスには、シンセサイザ、シーケンサ、MIDI 入力ポート、MIDI 出力ポートなどがあります。
MidiDevice
は、MIDI イベントのトランスミッタ、レシーバ、またはその両方になることができるので、Transmitter
インスタンスや Receiver
インスタンス、またはその両方を提供できます。通常、MIDI IN ポートはトランスミッタを提供し、MIDI OUT ポートおよびシンセサイザはレシーバを提供します。通常、シーケンサは、再生用にトランスミッタを提供し、録音用にレシーバを提供します。
MidiDevice
の開閉は、明示的に行うことも、暗黙的に行うこともできます。明示的に開くには MidiDevice
インスタンスの open()
を呼び出し、明示的に閉じるには close()
を呼び出します。アプリケーションから MidiDevice
を明示的に開いた場合は、それを明示的に閉じてシステムリソースを解放しないと、アプリケーションを正常に終了できません。暗黙的に開くには、MidiSystem.getReceiver
および MidiSystem.getTransmitter
を呼び出します。MidiSystem.getReceiver
および MidiSystem.getTransmitter
により使用される MidiDevice
は実装に依存していますが、javax.sound.midi.Receiver
プロパティや javax.sound.midi.Transmitter
プロパティを使用した場合は例外です (デフォルトプロバイダを選択するプロパティに関する MidiSystem
の説明を参照)。暗黙的に開いた MidiDevice
は、そのデバイスを開いた Receiver
または Transmitter
を閉じると、暗黙的に閉じられます。アプリケーションが複数の Receiver
または Transmitter
を取得してデバイスを暗黙的に開いている場合は、すべての Receiver
または Transmitter
が閉じられた時点で、デバイスが暗黙的に閉じられます。一方、デバイスインスタンスの getReceiver
または getTransmitter
を直接呼び出しても、デバイスが暗黙的に開くことはありません。また、これらの Transmitter
や Receiver
を閉じても、デバイスが暗黙的に閉じることはありません。この方法で取得した Receiver
や Transmitter
でデバイスを使用する際は、デバイスを明示的に開閉する必要があります。
MidiDevice
の同一のインスタンスに対して明示的な開閉と暗黙的な開閉が混在して行われた場合には、次の規則が適用されます。
MidiDevice device = ...; if ( ! (device instanceof Sequencer) && ! (device instanceof Synthesizer)) { // we're now sure that device represents a MIDI port // ... }
MidiDevice
には、製造者情報などを提供する
オブジェクトが含まれています。
MidiDevice.Info
Synthesizer
,
Sequencer
,
Receiver
,
Transmitter
入れ子のクラスの概要 | |
---|---|
static class |
MidiDevice.Info
MidiDevice.Info オブジェクトは、デバイスの名前、製作会社名、説明テキストなど、 に関連するさまざまなデータを含んでいます。 |
メソッドの概要 | |
---|---|
void |
close()
デバイスを閉じて、使用していたシステムリソースをデバイスが解放することを示します。 |
MidiDevice.Info |
getDeviceInfo()
Java クラスと、名前、ベンダーおよび説明などの Strings を含む、デバイスに関する情報を取得します。 |
int |
getMaxReceivers()
この MIDI デバイスで MIDI データを受信するのに使用可能な MIDI IN 接続の最大数を取得します。 |
int |
getMaxTransmitters()
この MIDI デバイスで MIDI データを転送するのに使用可能な MIDI OUT 接続の最大数を取得します。 |
long |
getMicrosecondPosition()
デバイスの現在の時刻表示をマイクロ秒単位で取得します。 |
Receiver |
getReceiver()
MIDI デバイスが MIDI データを受信するのに経由する MIDI IN レシーバを取得します。 |
List<Receiver> |
getReceivers()
この MidiDevice に接続されているレシーバのうち、現在アクティブで開いているものをすべて返します。 |
Transmitter |
getTransmitter()
MIDI デバイスが MIDI データを転送する MIDI OUT 接続を取得します。 |
List<Transmitter> |
getTransmitters()
この MidiDevice に接続されているトランスミッタのうち、現在アクティブで閉じられていないものをすべて返します。 |
boolean |
isOpen()
デバイスが開いているかどうかを判断します。 |
void |
open()
デバイスを開いて、必要なシステムリソースをデバイスが獲得して操作可能になっていることを示します。 |
メソッドの詳細 |
---|
MidiDevice.Info getDeviceInfo()
Strings
を含む、デバイスに関する情報を取得します。
void open() throws MidiUnavailableException
このメソッドを呼び出してデバイスを明示的に開いたアプリケーションでは、close()
を呼び出してそのデバイスを閉じる必要があります。この操作は、システムリソースを解放し、アプリケーションが正常に終了するために必要です。
デバイスによっては、一度閉じると再び開くことができないことに注意してください。こうしたデバイスを再度開こうとすると、常に MidiUnavailableException になります。
MidiUnavailableException
- リソースの制約のためにデバイスを開けない場合にスローされる
SecurityException
- セキュリティの制約のためにデバイスを開けない場合にスローされるclose()
,
isOpen()
void close()
このデバイスから開いた Receiver
インスタンスと Transmitter
インスタンスはすべて閉じられます。MidiSystem
を介して取得したインスタンスも同様に閉じられます。
open()
,
isOpen()
boolean isOpen()
true
、そうでない場合は false
open()
,
close()
long getMicrosecondPosition()
int getMaxReceivers()
int getMaxTransmitters()
Receiver getReceiver() throws MidiUnavailableException
このメソッドで Receiver
を取得しても、デバイスは開きません。デバイスを使用するには、open()
を呼び出して明示的に開く必要があります。また、Receiver
を閉じても、デバイスは閉じられないので、close()
を呼び出してデバイスを明示的に閉じる必要があります。
MidiUnavailableException
- リソースの制約のためにレシーバを使用できない場合にスローされるReceiver.close()
List<Receiver> getReceivers()
Transmitter getTransmitter() throws MidiUnavailableException
このメソッドで Transmitter
を取得しても、デバイスは開きません。デバイスを使用するには、open()
を呼び出して明示的に開く必要があります。また、Transmitter
を閉じても、デバイスは閉じられないので、close()
を呼び出してデバイスを明示的に閉じる必要があります。
MidiUnavailableException
- リソースの制約のためにトランスミッタを使用できない場合にスローされるTransmitter.close()
List<Transmitter> getTransmitters()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。