|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.sound.midi.MidiSystem
public class MidiSystem
MidiSystem
クラスは、シンセサイザ、シーケンサ、MIDI 入出力ポートなどのデバイスを含むインストール済み MIDI システムリソースへのアクセスを提供します。一般に見られる単純な MIDI アプリケーションは、1 つ以上の MidiSystem
メソッドを呼び出して、どのデバイスがインストールされているかを認知し、そのアプリケーションに必要なデバイスを取得することから始めます。
また、クラスにはファイル、ストリーム、および標準 MIDI ファイルデータまたはサウンドバンクを含む URL の読み取り用メソッドもあります。指定された MIDI ファイルの形式を MidiSystem
に照会できます。
MidiSystem
をインスタンス化することはできません。メソッドはすべて static メソッドです。
プロパティを使用して、デフォルトの MIDI デバイスを指定できます。システムプロパティ、プロパティファイルの両方とも使用可能です。プロパティファイルは、JRE ディレクトリ内の lib/sound.properties です。システムプロパティがプロパティファイル内にも存在する場合、システムプロパティのほうが優先されます。プロパティがまったく指定されていない場合は、使用可能なデバイスの中から適切なデフォルトプロパティが選択されます。プロパティファイルの構文は Properties.load
に指定されています。次の表は、使用可能なプロパティキーと、これらを認識するメソッドのリストです。
プロパティキー | インタフェース | 影響を受けるメソッド |
---|---|---|
javax.sound.midi.Receiver | Receiver | getReceiver() |
javax.sound.midi.Sequencer | Sequencer | getSequencer() |
javax.sound.midi.Synthesizer | Synthesizer | getSynthesizer() |
javax.sound.midi.Transmitter | Transmitter | getTransmitter() |
MIDI デバイスプロバイダ
クラスの完全修飾名です。デバイス名は、MidiDevice.Info
の getName
メソッドから返される String
とマッチングされます。クラス名、デバイス名の一方を省略することもできます。クラス名だけを指定した場合、ハッシュ記号は省略できます。
プロバイダクラスが指定されていて、インストール済みプロバイダから正常に取得できる場合、このプロバイダから MidiDevice.Info
オブジェクトのリストが取り出されます。そうでない場合、またはこれらのデバイスがこれ以降マッチングを行わない場合、getMidiDeviceInfo()
から取得したリストには、使用可能なすべての MidiDevice.Info
オブジェクトが含まれます。
デバイス名が指定されている場合、MidiDevice.Info
オブジェクトの結果リストが検索されます。名前が一致した最初のオブジェクト (その MidiDevice
はそれぞれのインタフェースを持つ) が返されます。一致する MidiDevice.Info
オブジェクトが見つからない場合、またはデバイス名が指定されていない場合、結果リストの最初の適切なデバイスが返されます。Sequencer および Synthesizer の場合、それぞれのインタフェースを実装するデバイスが適切なデバイスです。これに対して、Receiver および Transmitter の場合、Sequencer も Synthesizer も実装せず、Receiver または Transmitter を 1 つ以上提供するデバイスが適切なデバイスです。
たとえば、値 com.sun.media.sound.MidiProvider#SunMIDI1
のプロパティ javax.sound.midi.Receiver
では、getReceiver
が呼び出されたとき、次のような結果が得られます。インストール済み MIDI デバイスプロバイダのリスト内にクラス com.sun.media.sound.MidiProvider
が存在する場合、SunMIDI1
という名前の最初の Receiver
デバイスが返されます。見つからない場合は、名前とは関係なく、そのプロバイダの最初の Receiver
が返されます。存在しない場合は、すべてのデバイスのリスト (getMidiDeviceInfo
によって返される) 内の SunMIDI1
という名前の最初の Receiver
が返されます。これが見つからない場合、すべてのデバイスのリスト内で最初に見つかった Receiver
が返されます。この処理にも失敗した場合は、MidiUnavailableException
がスローされます。
メソッドの概要 | |
---|---|
static MidiDevice |
getMidiDevice(MidiDevice.Info info)
要求された MIDI デバイスを取得します。 |
static MidiDevice.Info[] |
getMidiDeviceInfo()
システムで使用可能な全 MIDI デバイスのセットを表す情報オブジェクトの配列を取得します。 |
static MidiFileFormat |
getMidiFileFormat(File file)
指定された File の MIDI ファイル形式を取得します。 |
static MidiFileFormat |
getMidiFileFormat(InputStream stream)
指定された入力ストリームのデータの MIDI ファイル形式を取得します。 |
static MidiFileFormat |
getMidiFileFormat(URL url)
指定された URL のデータの MIDI ファイル形式を取得します。 |
static int[] |
getMidiFileTypes()
システムがファイル書き込みサポートを提供する MIDI ファイル型のセットを取得します。 |
static int[] |
getMidiFileTypes(Sequence sequence)
指定されたシーケンスからシステムが書き込み可能な MIDI ファイル型のセットを取得します。 |
static Receiver |
getReceiver()
外部 MIDI ポートまたはその他のデフォルトデバイスから、MIDI レシーバを取得します。 |
static Sequence |
getSequence(File file)
指定された File から MIDI シーケンスを取得します。 |
static Sequence |
getSequence(InputStream stream)
指定された入力ストリームから MIDI シーケンスを取得します。 |
static Sequence |
getSequence(URL url)
指定された URL から MIDI シーケンスを取得します。 |
static Sequencer |
getSequencer()
デフォルトデバイスに接続されたデフォルトの Sequencer を取得します。 |
static Sequencer |
getSequencer(boolean connected)
オプションでデフォルトデバイスに接続された、デフォルトの Sequencer を取得します。 |
static Soundbank |
getSoundbank(File file)
指定された File から Soundbank を読み取ることによって、Soundbank を構築します。 |
static Soundbank |
getSoundbank(InputStream stream)
指定されたストリームから MIDI サウンドバンクを読み取ることによって、MIDI サウンドバンクを構築します。 |
static Soundbank |
getSoundbank(URL url)
指定された URL から Soundbank を読み取ることによって、Soundbank を構築します。 |
static Synthesizer |
getSynthesizer()
デフォルトシンセサイザを取得します。 |
static Transmitter |
getTransmitter()
外部 MIDI ポートまたはその他のデフォルトソースから、MIDI トランスミッタを取得します。 |
static boolean |
isFileTypeSupported(int fileType)
指定された MIDI ファイル型のファイル書き込みサポートをシステムが提供しているかどうかを示します。 |
static boolean |
isFileTypeSupported(int fileType,
Sequence sequence)
指定されたファイル型の MIDI ファイルを、示されたシーケンスから書き込めるかどうかを示します。 |
static int |
write(Sequence in,
int type,
File out)
提供される外部ファイルに示される MIDI ファイル型を表すバイトのストリームを書き込みます。 |
static int |
write(Sequence in,
int fileType,
OutputStream out)
提供される外部ストリームに示される MIDI ファイル型を表すバイトのストリームを書き込みます。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
メソッドの詳細 |
---|
public static MidiDevice.Info[] getMidiDeviceInfo()
getMidiDevice
を呼び出して該当のデバイスを取得できます。
MidiDevice.Info
オブジェクトの配列で、インストールされた MIDI デバイスごとに 1 つの配列が返される。該当するデバイスがインストールされていない場合、長さ 0 の配列が返されるpublic static MidiDevice getMidiDevice(MidiDevice.Info info) throws MidiUnavailableException
info
- 目的のデバイスを表すデバイス情報オブジェクト
MidiUnavailableException
- リソースの制約のために、要求されたデバイスを使用できない場合
IllegalArgumentException
- システムにインストールされた MIDI デバイスを情報オブジェクトが表示しない場合getMidiDeviceInfo()
public static Receiver getReceiver() throws MidiUnavailableException
システムプロパティ javax.sound.midi.Receiver
が定義されている場合、または sound.properties ファイル内に定義されている場合、このプロパティは、デフォルトのレシーバを提供するデバイスを識別するために使用されます。詳細は、クラスの説明
を参照してください。
適切な MIDI ポートを使用できない場合、インストール済みシンセサイザから Receiver を取得します。
このメソッドが正常に実行されると、暗黙のうちに、Receiver
の MidiDevice
が開きます (まだ開いていない場合)。暗黙的に開かれたデバイスを閉じるには、返された Receiver
上で close
を呼び出します。MidiDevice
に格納されているシステムリソースを解放するには、開いているすべての Receiver
インスタンスを閉じる必要があります。開く/閉じるの動作の詳細は、MidiDevice
のクラスの説明を参照してください。
MidiUnavailableException
- リソース制約により、またはレシーバを提供するデバイスがシステムにインストールされていないためにデフォルトのレシーバを使用できない場合public static Transmitter getTransmitter() throws MidiUnavailableException
システムプロパティ javax.sound.midi.Transmitter
が定義されている場合、または sound.properties ファイル内に定義されている場合、このプロパティは、デフォルトのトランスミッタを提供するデバイスを識別するために使用されます。詳細は、クラスの説明
を参照してください。
このメソッドが正常に実行されると、暗黙のうちに、Transmitter
の MidiDevice
が開きます (まだ開いていない場合)。暗黙的に開かれたデバイスを閉じるには、返された Transmitter
上で close
を呼び出します。MidiDevice
に格納されているシステムリソースを解放するには、開いているすべての Transmitter
インスタンスを閉じる必要があります。開く/閉じるの動作の詳細は、MidiDevice
のクラスの説明を参照してください。
MidiUnavailableException
- リソース制約により、またはトランスミッタを提供するデバイスがシステムにインストールされていないためにデフォルトのトランスミッタを使用できない場合public static Synthesizer getSynthesizer() throws MidiUnavailableException
システムプロパティ javax.sound.midi.Synthesizer
が定義されている場合、または sound.properties ファイル内に定義されている場合、このプロパティは、デフォルトのシンセサイザを識別するために使用されます。詳細は、クラスの説明
を参照してください。
MidiUnavailableException
- リソース制約により、またはシステムにシンセサイザがインストールされていないためにデフォルトのシンセサイザを使用できない場合public static Sequencer getSequencer() throws MidiUnavailableException
Sequencer
を取得します。返される Sequencer
インスタンスは、getSynthesizer()
により返されるデフォルトの Synthesizer
に接続されます。使用可能な Synthesizer
がない場合、またはデフォルトの Synthesizer
を開くことができない場合、sequencer
は、getReceiver()
により返されるデフォルトの Receiver
に接続されます。接続を確立するには、Sequencer
から Transmitter
インスタンスを取得し、その Receiver
を設定します。シーケンサを閉じて再度開くと、デフォルトデバイスとの接続が復元されます。
このメソッドは getSequencer(true)
と等価です。
システムプロパティ javax.sound.midi.Sequencer
が定義されている場合、または sound.properties ファイル内に定義されている場合、このプロパティは、デフォルトのシーケンサを識別するために使用されます。詳細は、クラスの説明
を参照してください。
MidiUnavailableException
- リソース制約により、またはインストール済み MidiDevice
で使用できる Receiver
がないため、またはシステムにシーケンサがインストールされていないため、シーケンサを使用できない場合getSequencer(boolean)
,
getSynthesizer()
,
getReceiver()
public static Sequencer getSequencer(boolean connected) throws MidiUnavailableException
Sequencer
を取得します。
connected
が true の場合、返される Sequencer
インスタンスは、getSynthesizer()
により返されるデフォルトの Synthesizer
に接続されます。使用可能な Synthesizer
がない場合、またはデフォルトの Synthesizer
を開くことができない場合、sequencer
は、getReceiver()
により返されるデフォルトの Receiver
に接続されます。接続を確立するには、Sequencer
から Transmitter
インスタンスを取得し、その Receiver
を設定します。シーケンサを閉じて再度開くと、デフォルトデバイスとの接続が復元されます。
connected
が false の場合、返される Sequencer
インスタンスは接続されず、開いた Transmitter
が存在しない状態になります。MIDI デバイスまたは Synthesizer
上でシーケンサを使用するには、Transmitter
を取得し、その Receiver
を設定する必要があります。
システムプロパティ javax.sound.midi.Sequencer
が定義されている場合、または sound.properties ファイル内に定義されている場合、このプロパティは、デフォルトのシーケンサを識別するために使用されます。詳細は、クラスの説明
を参照してください。
MidiUnavailableException
- リソース制約により、またはシステムにシーケンサがインストールされていないため、シーケンサを使用できない場合。または、connected
が true で、インストール済み MidiDevice
で使用可能な Receiver
が存在しない場合getSynthesizer()
,
getReceiver()
public static Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException
stream
- サウンドバンクデータのソース
InvalidMidiDataException
- システムが認識した有効な MIDI サウンドバンクデータをストリームが示さない場合
IOException
- サウンドバンクをロードするときに入出力エラーが発生した場合InputStream.markSupported()
,
InputStream.mark(int)
public static Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException
Soundbank
を読み取ることによって、Soundbank
を構築します。URL は有効な MIDI サウンドバンクファイルを示す必要があります。
url
- サウンドバンクデータのソース
InvalidMidiDataException
- システムが認識した有効な MIDI サウンドバンクデータを URL が示さない場合
IOException
- サウンドバンクをロードするときに入出力エラーが発生した場合public static Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException
File
から Soundbank
を読み取ることによって、Soundbank
を構築します。File
は有効な MIDI サウンドバンクファイルを示す必要があります。
file
- サウンドバンクデータのソース
InvalidMidiDataException
- システムが認識した有効な MIDI サウンドバンクデータを File
が示さない場合
IOException
- サウンドバンクをロードするときに入出力エラーが発生した場合public static MidiFileFormat getMidiFileFormat(InputStream stream) throws InvalidMidiDataException, IOException
このメソッドまたはこのメソッドが呼び出すコード、あるいはその両方とも、そのデータ形式がサポートされるかどうかを判定するためにストリームからデータをいくらか読み取る必要があります。したがって、ストリームをマークし、データがサポートされる形式であるかどうかを判定するのに十分なデータを読み取り、ストリームのリードポインタを元の位置に戻すための実装が必要です。入力ストリームがこの一連の操作を許可しない場合、このメソッドは IOException
をスローして失敗します。
この操作は、インストールされたファイルリーダによって構文解析できる種類のファイルに限り有効です。互換性のあるファイルリーダがインストールされていない場合、有効なファイルでも InvalidMidiDataException をスローして失敗する可能性があります。互換性のあるファイルリーダがインストールされていても、ファイル形式を判別中にエラーが発生すると、やはり失敗します。
stream
- ファイル形式情報を抽出する入力ストリーム
MidiFileFormat
オブジェクト
InvalidMidiDataException
- システムが認識した有効な MIDI ファイルデータをストリームが示さない場合
IOException
- ストリームにアクセス中に入出力例外が発生した場合getMidiFileFormat(URL)
,
getMidiFileFormat(File)
,
InputStream.markSupported()
,
InputStream.mark(int)
public static MidiFileFormat getMidiFileFormat(URL url) throws InvalidMidiDataException, IOException
この操作は、インストールされたファイルリーダによって構文解析できる種類のファイルに限り有効です。互換性のあるファイルリーダがインストールされていない場合、有効なファイルでも InvalidMidiDataException をスローして失敗する可能性があります。互換性のあるファイルリーダがインストールされていても、ファイル形式を判別中にエラーが発生すると、やはり失敗します。
url
- ファイル形式情報を抽出する URL
MidiFileFormat
オブジェクト
InvalidMidiDataException
- システムが認識した有効な MIDI ファイルデータを URL が示さない場合
IOException
- URL にアクセス中に入出力例外が発生した場合getMidiFileFormat(InputStream)
,
getMidiFileFormat(File)
public static MidiFileFormat getMidiFileFormat(File file) throws InvalidMidiDataException, IOException
File
の MIDI ファイル形式を取得します。File
は、システムが認識したファイル型に有効な MIDI ファイルデータを示す必要があります。
この操作は、インストールされたファイルリーダによって構文解析できる種類のファイルに限り有効です。互換性のあるファイルリーダがインストールされていない場合、有効なファイルでも InvalidMidiDataException をスローして失敗する可能性があります。互換性のあるファイルリーダがインストールされていても、ファイル形式を判別中にエラーが発生すると、やはり失敗します。
file
- ファイル形式情報を抽出する File
MidiFileFormat
オブジェクト
InvalidMidiDataException
- システムが認識した有効な MIDI ファイルデータを File
が示さない場合
IOException
- ファイルにアクセス中に入出力例外が発生した場合getMidiFileFormat(InputStream)
,
getMidiFileFormat(URL)
public static Sequence getSequence(InputStream stream) throws InvalidMidiDataException, IOException
このメソッドまたはこのメソッドが呼び出すコード、あるいはその両方とも、そのデータ形式がサポートされるかどうかを判定するためにストリームからデータをいくらか読み取る必要があります。したがって、ストリームをマークし、データがサポートされる形式であるかどうかを判定するのに十分なデータを読み取り、ストリームのリードポインタを元の位置に戻すための実装が必要です。入力ストリームがこの一連の操作を許可しない場合、このメソッドは IOException
をスローして失敗します。
この操作は、インストールされたファイルリーダによって構文解析できる種類のファイルに限り有効です。互換性のあるファイルリーダがインストールされていない場合、有効なファイルでも InvalidMidiDataException をスローして失敗する可能性があります。互換性のあるファイルリーダがインストールされていても、ファイルデータから Sequence
オブジェクトを構築中にエラーが発生すると、やはり失敗します。
stream
- Sequence
を構築する入力ストリーム
Sequence
オブジェクト
InvalidMidiDataException
- システムが認識した有効な MIDI ファイルデータをストリームが示さない場合
IOException
- ストリームにアクセス中に入出力例外が発生した場合InputStream.markSupported()
,
InputStream.mark(int)
public static Sequence getSequence(URL url) throws InvalidMidiDataException, IOException
この操作は、インストールされたファイルリーダによって構文解析できる種類のファイルに限り有効です。互換性のあるファイルリーダがインストールされていない場合、有効なファイルでも InvalidMidiDataException をスローして失敗する可能性があります。互換性のあるファイルリーダがインストールされていても、ファイルデータから Sequence
オブジェクトを構築中にエラーが発生すると、やはり失敗します。
url
- Sequence
を構築する URL
Sequence
オブジェクト
InvalidMidiDataException
- システムが認識した有効な MIDI ファイルデータを URL が示さない場合
IOException
- URL にアクセス中に入出力例外が発生した場合public static Sequence getSequence(File file) throws InvalidMidiDataException, IOException
File
から MIDI シーケンスを取得します。File
は、システムが認識したファイル型に有効な MIDI ファイルデータを示す必要があります。
この操作は、インストールされたファイルリーダによって構文解析できる種類のファイルに限り有効です。互換性のあるファイルリーダがインストールされていない場合、有効なファイルでも InvalidMidiDataException をスローして失敗する可能性があります。互換性のあるファイルリーダがインストールされていても、ファイルデータから Sequence
オブジェクトを構築中にエラーが発生すると、やはり失敗します。
file
- Sequence
を構築する File
Sequence
オブジェクト
InvalidMidiDataException
- システムが認識した有効な MIDI ファイルデータをファイルが示さない場合
IOException
- 入出力例外が発生した場合public static int[] getMidiFileTypes()
public static boolean isFileTypeSupported(int fileType)
fileType
- 書き込み機能が照会されるファイル型
true
、そうでない場合は false
public static int[] getMidiFileTypes(Sequence sequence)
sequence
- MIDI ファイル型のサポートが照会されるシーケンス
public static boolean isFileTypeSupported(int fileType, Sequence sequence)
fileType
- 書き込み機能が照会されるファイル型sequence
- ファイル書き込みサポートが照会されるシーケンス
true
、そうでない場合は false
public static int write(Sequence in, int fileType, OutputStream out) throws IOException
in
- ファイルへ書き込まれる MIDI データを含むシーケンスfileType
- 出力ストリームへ書き込まれるファイルのファイル型out
- ファイルデータが書き込まれるストリーム
IOException
- 入出力例外が発生した場合
IllegalArgumentException
- システムがそのファイル形式をサポートしていない場合isFileTypeSupported(int, Sequence)
,
getMidiFileTypes(Sequence)
public static int write(Sequence in, int type, File out) throws IOException
in
- ファイルへ書き込まれる MIDI データを含むシーケンスtype
- 出力ストリームへ書き込まれるファイルのファイル型out
- ファイルデータが書き込まれる外部ファイル
IOException
- 入出力例外が発生した場合
IllegalArgumentException
- システムがそのファイル型をサポートしていない場合isFileTypeSupported(int, Sequence)
,
getMidiFileTypes(Sequence)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。