JavaTM 2 Platform
Standard Ed. 6

javax.sound.midi
類別 MidiMessage

java.lang.Object
  繼承者 javax.sound.midi.MidiMessage
所有已實作的介面:
Cloneable
直接已知子類別:
MetaMessage, ShortMessage, SysexMessage

public abstract class MidiMessage
extends Object
implements Cloneable

MidiMessage 是 MIDI 訊息的基礎類別。這些基礎類別中不僅包含了合成器可回應的標準 MIDI 訊息,還包含可供 sequencer 程序使用的“元事件”。還有針對類似歌詞、版權、速度指示、時間和主要簽章、製造者等資訊的元事件。有關更多的資訊,請參見 Standard MIDI Files 1.0 規範,它是由 MIDI 製造商協會 (http://www.midi.org) 發佈的 Complete MIDI 1.0 Detailed Specification 的一部分。

MidiMessage 基礎類別提供了對有關 MIDI 訊息的三類別資訊的存取:

MidiMessage 套件含了用於獲取這些值的方法,但不包括用於設置這些值的方法。設置這些值是子類別的任務。

MIDI 標準用位元組表示 MIDI 資料。但是,由於 JavaTM 使用帶符號位元組,所以 Java Sound API 表示 MIDI 資料時使用整數而不是位元組。例如,MidiMessagegetStatus() 方法返回用整數表示的 MIDI 狀態位元組。如果處理來源於 Java Sound 之外的 MIDI 資料,而現在又編碼為帶符號位元組,可使用以下轉換將位元組轉換為整數:

int i = (int)(byte & 0xFF)

如果只需要將一個已知 MIDI 位元組值作為方法參數傳遞,則可使用(例如)十進制或十六進制符號直接將其表示為整數。例如,要傳遞“實際有意義的”狀態位元組作為 ShortMessage 的 setMessage(int) 方法的第一個參數,您可以將其表示為 254 或 0xFE。

另請參見:
Track, Sequence, Receiver

欄位摘要
protected  byte[] data
          MIDI 訊息資料。
protected  int length
          MIDI 訊息中的位元組數,包括狀態位元組和資料位元組。
 
建構子摘要
protected MidiMessage(byte[] data)
          建構一個新的 MidiMessage
 
方法摘要
abstract  Object clone()
          創建一個與此物件具有相同類別和相同內容的新物件。
 int getLength()
          獲得 MIDI 訊息的總長度,以位元組為單位。
 byte[] getMessage()
          獲得 MIDI 訊息資料。
 int getStatus()
          獲得 MIDI 訊息的狀態位元組。
protected  void setMessage(byte[] data, int length)
          為 MIDI 訊息設置資料。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

data

protected byte[] data
MIDI 訊息資料。第一個位元組是訊息的狀態位元組;後面一直到訊息長度位元組為止的是此訊息的資料位元組。

另請參見:
getLength()

length

protected int length
MIDI 訊息中的位元組數,包括狀態位元組和資料位元組。

另請參見:
getLength()
建構子詳細資訊

MidiMessage

protected MidiMessage(byte[] data)
建構一個新的 MidiMessage。此受保護的建構子由具體子類別調用,具體子類別應確保資料陣列指定一個完整有效的 MIDI 訊息。

參數:
data - 套件含完整訊息的 byte 陣列。使用 setMessage 方法可更改訊息資料。
另請參見:
setMessage(byte[], int)
方法詳細資訊

setMessage

protected void setMessage(byte[] data,
                          int length)
                   throws InvalidMidiDataException
為 MIDI 訊息設置資料。此受保護的方法由具體子類別調用,具體子類別應確保資料陣列指定一個完整有效的 MIDI 訊息。

拋出:
InvalidMidiDataException

getMessage

public byte[] getMessage()
獲得 MIDI 訊息資料。返回的 byte 陣列中的第一個位元組是訊息的狀態位元組。後面一直到訊息長度位元組為止的是資料位元組。byte 陣列的長度可能會大於實際訊息的長度;訊息總長度(以位元組為單位)由 getLength() 方法報告。

返回:
包含完整的 MidiMessage 資料的 byte 陣列

getStatus

public int getStatus()
獲得 MIDI 訊息的狀態位元組。以整數方式表示狀態“位元組”;請參見 MidiMessage 類別描述中的討論

返回:
此事件的狀態位元組的整數表示形式

getLength

public int getLength()
獲得 MIDI 訊息的總長度,以位元組為單位。一個 MIDI 訊息包含一個狀態位元組和零個或多個資料位元組。返回值的範圍:系統實時訊息為 1,通道訊息為 2 或 3,元和系統獨佔訊息為任意值。

返回:
訊息的長度,以位元組為單位

clone

public abstract Object clone()
創建一個與此物件具有相同類別和相同內容的新物件。

覆寫:
類別 Object 中的 clone
返回:
此實例的一個副本。
另請參見:
Cloneable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only