模块 java.desktop

类 Track

java.lang.Object
javax.sound.midi.Track

public final class Track extends Object
MIDI 轨道是一个独立的 MIDI 事件流(带时间戳的 MIDI 数据),可以与标准 MIDI 文件中的其他轨道一起存储。 MIDI 规范仅允许 16 个通道的 MIDI 数据,但音轨是解决此限制的一种方法。一个 MIDI 文件可以包含任意数量的音轨,每个音轨都包含自己的最多 16 个 MIDI 数据通道流。

TrackSequencer 播放的数据层次结构中占据中间级别:音序器播放序列,其中包含轨道,其中包含 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

      public int size()
      获取该轨道的事件数。
      返回:
      轨道事件向量的大小
    • ticks

      public long ticks()
      获取音轨的长度,以 MIDI 节拍数表示。 (以秒为单位的滴答持续时间由包含此曲目的Sequence的时间分辨率以及由音序器设置的音乐节奏决定。)
      返回:
      持续时间,以刻度为单位
      参见: