JavaTM 2 Platform
Standard Ed. 6

javax.sound.midi
類別 Sequence

java.lang.Object
  繼承者 javax.sound.midi.Sequence

public class Sequence
extends Object

Sequence 是一種資料結構,包含可由 Sequencer 物件回放的音樂資訊(通常是整首歌曲或音樂作品)。特別地,Sequence 套件含定時資訊和一個或多個軌道。每個 track 套件含一系列的 MIDI 事件(例如音符打開、音符關閉、程序更改和元事件)。sequence 的定時資訊指定了用於為 sequence 中的事件加時間戳的單位型別。

Sequence 可從一個 MIDI 檔案創建,方法是將該檔案讀入到輸入串流並調用 MidiSystem 的某個 getSequence 方法。還可以從頭建構 sequence,方法是將新的 Track 添加到空 Sequence 中,然後將 MidiEvent 物件添加到這些 Track 中。

另請參見:
Sequencer.setSequence(java.io.InputStream stream), Sequencer.setSequence(Sequence sequence), Track.add(MidiEvent), MidiFileFormat

欄位摘要
protected  float divisionType
          sequence 的定時 division 型別。
static float PPQ
          基於速度的定時型別,其精度用每四分音符的拍子數(節拍)表示。
protected  int resolution
          sequence 的定時精度。
static float SMPTE_24
          基於 SMPTE 的定時型別,每秒 24 幀(精度用每幀的節拍數表示)。
static float SMPTE_25
          基於 SMPTE 的定時型別,每秒 25 幀(精度用每幀的節拍數表示)。
static float SMPTE_30
          基於 SMPTE 的定時型別,每秒 30 幀(精度用每幀的節拍數表示)。
static float SMPTE_30DROP
          基於 SMPTE 的定時型別,每秒 29.97 幀(精度用每幀的節拍數表示)。
protected  Vector<Track> tracks
          此 sequence 中的 MIDI 軌道。
 
建構子摘要
Sequence(float divisionType, int resolution)
          建構具有指定的定時 division 型別和定時精度的新 MIDI Sequence。
Sequence(float divisionType, int resolution, int numTracks)
          建構具有指定的定時 division 型別、定時精度和軌道數的新 MIDI Sequence。
 
方法摘要
 Track createTrack()
          創建一個新的、初始為空的軌道作為此 Sequence 的一部分。
 boolean deleteTrack(Track track)
          從 Sequence 中移除指定的軌道。
 float getDivisionType()
          獲得此 Sequence 的定時 division 型別。
 long getMicrosecondLength()
          獲得此 Sequence 的持續時間,用微秒表示。
 Patch[] getPatchList()
          獲得此 Sequence 中參考的套件列表。
 int getResolution()
          獲得此 Sequence 的定時精度。
 long getTickLength()
          獲得此 Sequence 的持續時間,用 MIDI 節拍數表示。
 Track[] getTracks()
          獲得包含此 Sequence 中所有軌道的陣列。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

PPQ

public static final float PPQ
基於速度的定時型別,其精度用每四分音符的拍子數(節拍)表示。

另請參見:
Sequence(float, int), 常數欄位值

SMPTE_24

public static final float SMPTE_24
基於 SMPTE 的定時型別,每秒 24 幀(精度用每幀的節拍數表示)。

另請參見:
Sequence(float, int), 常數欄位值

SMPTE_25

public static final float SMPTE_25
基於 SMPTE 的定時型別,每秒 25 幀(精度用每幀的節拍數表示)。

另請參見:
Sequence(float, int), 常數欄位值

SMPTE_30DROP

public static final float SMPTE_30DROP
基於 SMPTE 的定時型別,每秒 29.97 幀(精度用每幀的節拍數表示)。

另請參見:
Sequence(float, int), 常數欄位值

SMPTE_30

public static final float SMPTE_30
基於 SMPTE 的定時型別,每秒 30 幀(精度用每幀的節拍數表示)。

另請參見:
Sequence(float, int), 常數欄位值

divisionType

protected float divisionType
sequence 的定時 division 型別。

另請參見:
PPQ, SMPTE_24, SMPTE_25, SMPTE_30DROP, SMPTE_30, getDivisionType()

resolution

protected int resolution
sequence 的定時精度。

另請參見:
getResolution()

tracks

protected Vector<Track> tracks
此 sequence 中的 MIDI 軌道。

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

Sequence

public Sequence(float divisionType,
                int resolution)
         throws InvalidMidiDataException
建構具有指定的定時 division 型別和定時精度的新 MIDI Sequence。division 型別必須是可識別的 MIDI 定時型別之一。對於基於速度的定時,divisionType 是 PPQ(每四分音符的節拍數),精度通過每拍的節拍數指定。對於 SMTPE 定時,divisionType 指定每秒的幀數,精度通過每幀的節拍數指定。該 Sequence 不包含任何初始軌道。可從 Sequence 中添加或移除軌道,方法是使用 createTrack()deleteTrack(javax.sound.midi.Track)

參數:
divisionType - 定時 division 型別(PPQ 和某個 SMPTE 型別)
resolution - 定時精度
拋出:
InvalidMidiDataException - 如果 divisionType 無效
另請參見:
PPQ, SMPTE_24, SMPTE_25, SMPTE_30DROP, SMPTE_30, getDivisionType(), getResolution(), getTracks()

Sequence

public Sequence(float divisionType,
                int resolution,
                int numTracks)
         throws InvalidMidiDataException
建構具有指定的定時 division 型別、定時精度和軌道數的新 MIDI Sequence。division 型別必須是可識別的 MIDI 定時型別之一。對於基於速度的定時,divisionType 是 PPQ(每四分音符的節拍數),精度通過每拍的節拍數指定。對於 SMTPE 定時,divisionType 指定每秒的幀數,精度通過每幀的節拍數指定。將使用由 numTracks 指定的軌道數來初始化該 Sequence。這些軌道初始為空(即它們只包含元事件 End of Track)。使用 getTracks() 方法可檢索軌道以供編輯。還可以使用 createTrack()deleteTrack(javax.sound.midi.Track) 添加其他的軌道或移除現有的軌道。

參數:
divisionType - 定時 division 型別(PPQ 或某個 SMPTE 型別)
resolution - 定時精度
numTracks - Sequence 中的初始軌道數。
拋出:
InvalidMidiDataException - 如果 divisionType 無效
另請參見:
PPQ, SMPTE_24, SMPTE_25, SMPTE_30DROP, SMPTE_30, getDivisionType(), getResolution()
方法詳細資訊

getDivisionType

public float getDivisionType()
獲得此 Sequence 的定時 division 型別。

返回:
division 型別(PPQ 或某個 SMPTE 型別)
另請參見:
PPQ, SMPTE_24, SMPTE_25, SMPTE_30DROP, SMPTE_30, Sequence(float, int), MidiFileFormat.getDivisionType()

getResolution

public int getResolution()
獲得此 Sequence 的定時精度。如果 Sequence 的 division 型別為 PPQ,則精度按每拍的節拍數指定。對於 SMTPE 定時,精度按每幀的節拍數指定。

返回:
每拍 (PPQ) 或每幀 (SMPTE) 的節拍數
另請參見:
getDivisionType(), Sequence(float, int), MidiFileFormat.getResolution()

createTrack

public Track createTrack()
創建一個新的、初始為空的軌道作為此 Sequence 的一部分。軌道初始包含元事件 End of Track。返回新創建的軌道。可使用 getTracks() 檢索 Sequence 中的所有軌道。可使用 deleteTrack(javax.sound.midi.Track) 從 Sequence 中移除軌道。

返回:
新創建的軌道

deleteTrack

public boolean deleteTrack(Track track)
從 Sequence 中移除指定的軌道。

參數:
track - 要移除的軌道
返回:
如果軌道原先存在但後來被移除,則返回 true;否則返回 false
另請參見:
createTrack(), getTracks()

getTracks

public Track[] getTracks()
獲得包含此 Sequence 中所有軌道的陣列。如果 Sequence 中不包含任何軌道,則返回長度為 0 的陣列。

返回:
軌道陣列
另請參見:
createTrack(), deleteTrack(javax.sound.midi.Track)

getMicrosecondLength

public long getMicrosecondLength()
獲得此 Sequence 的持續時間,用微秒表示。

返回:
此 Sequence 的持續時間,以微秒為單位。

getTickLength

public long getTickLength()
獲得此 Sequence 的持續時間,用 MIDI 節拍數表示。

返回:
此 Sequence 的長度,以節拍數為單位
另請參見:
getMicrosecondLength()

getPatchList

public Patch[] getPatchList()
獲得此 Sequence 中參考的套件列表。使用該套件列表可將所需的 Instrument 物件載入到 Synthesizer 中。

返回:
此 Sequence 中使用的 Patch 物件陣列
另請參見:
Synthesizer.loadInstruments(Soundbank, Patch[])

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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