- java.lang.Object
-
- javax.sound.midi.Track
-
public class Track extends Object
MIDI轨道是独立的MIDI事件流(时间戳的MIDI数据),可以与标准MIDI文件中的其他轨道一起存储。 MIDI规范仅允许16通道的MIDI数据,但轨道是解决此限制的一种方式。 MIDI文件可以包含任意数量的曲目,每个曲目都包含多达16个MIDI数据通道。A
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(float, int)
,Sequencer.setTempoInBPM(float)
,Sequencer.getTickPosition()
-
-