- java.lang.Object
-
- javax.sound.midi.Track
-
public class Track extends Object
MIDI轨道是MIDI事件(带时间戳的MIDI数据)的独立流,可以与标准MIDI文件中的其他轨道一起存储。 MIDI规范仅允许16个MIDI通道,但轨道是解决此限制的一种方法。 MIDI文件可以包含任意数量的曲目,每个曲目包含自己的最多16个MIDI数据通道的流。Track
占据Sequencer
:序列发生器播放序列所播放数据层次结构的中间级别,其中包含包含MIDI事件的轨道。 音序器可以提供静音或独奏音轨的控制。轨道的定时信息和分辨率由包含轨道的序列控制并存储在轨道中。 给定的
Track
被认为属于保持其时序的特定Sequence
。 因此,通过调用Sequence.createTrack()
方法创建新的(空)轨道,而不是直接调用Track
构造函数。Track
类提供了通过在其中添加或删除MidiEvent
对象来编辑轨道的方法。 这些操作使事件列表保持正确的时间顺序。 还包括方法以根据其包含的事件数量或其在刻度中的持续时间来获得轨道的大小。
-
-
方法详细信息
-
add
public boolean add(MidiEvent event)
向赛道添加新赛事。 但是,如果事件已包含在轨道中,则不会再次添加。 事件列表按时间顺序保留,这意味着此事件将插入列表中的适当位置,而不一定在最后。- 参数
-
event
- 要添加的事件 - 结果
-
true
如果该事件在轨道中尚未存在且已添加,否则为false
-
remove
public boolean remove(MidiEvent event)
从轨道中删除指定的事件。- 参数
-
event
- 要删除的事件 - 结果
-
true
如果事件存在于轨道中并被删除,否则为false
-
get
public MidiEvent get(int index) throws ArrayIndexOutOfBoundsException
获取指定索引处的事件。- 参数
-
index
- 事件向量中所需事件的位置 - 结果
- 指定索引处的事件
- 异常
-
ArrayIndexOutOfBoundsException
- 如果指定的索引为负数或不小于此轨道的当前大小 - 另请参见:
-
size()
-
size
public int size()
获得此曲目中的事件数。- 结果
- 轨道事件向量的大小
-
ticks
public long ticks()
获得轨道的长度,以MIDI刻度表示。 (以秒为单位的刻度持续时间Sequence
包含此音轨的Sequence
的定时分辨率,以及音序器设置的音乐速度。)- 结果
- 持续时间,以刻度表示
- 另请参见:
-
Sequence(float, int)
,Sequencer.setTempoInBPM(float)
,Sequencer.getTickPosition()
-
-