java.lang.Object javax.sound.midi.Track
public class Track
MIDI 音轨是一个可随其他音轨存储在标准 MIDI 文件中的独立的 MIDI 事件流(带时间戳的 MIDI 数据)。MIDI 规范只允许 16 通道的 MIDI 数据,音轨是一个绕过此限制的方法。一个 MIDI 文件可包含任何数量的音轨,每个音轨包含其自身的多达 16 个通道的 MIDI 数据流。
Track
占用
演奏的数据层次中的一个中间层。sequencer 演奏 sequence,它包含音轨,而音轨包含 MIDI 事件。Sequencer 可能提供 mute 或 solo 具体音轨的控制。 Sequencer
音轨的计时信息和精度由包含该音轨的 sequence 控制并存储在其中。给定的 Track
被当作属于维持其计时的特定的
。因此,新(空)音轨通过调用 Sequence
方法创建,而不是直接调用 Sequence.createTrack()
Track
构造方法。
Track
类通过从其添加或移除 MidiEvent
对象提供了用于编辑音轨的方法。这些操作使事件列表保持正确的时间顺序。还包括用于获得有关其包含的事件数或刻度持续时间的音轨大小的方法。
方法摘要 | |
---|---|
boolean |
add(MidiEvent event) 将新事件添加至音轨。 |
MidiEvent |
get(int index) 获得位于指定索引处的事件。 |
boolean |
remove(MidiEvent event) 从音轨中移除指定的事件。 |
int |
size() 获得此音轨中的事件数。 |
long |
ticks() 获得音轨的长度,用 MIDI 刻度表示。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详细信息 |
---|
public boolean add(MidiEvent event)
event
- 要添加的事件
true
,否则返回
false
public boolean remove(MidiEvent event)
event
- 要移除的事件
true
,否则返回
false
public MidiEvent get(int index) throws ArrayIndexOutOfBoundsException
index
- 事件向量中所需事件的位置
ArrayIndexOutOfBoundsException
- 如果指定的索引为负或小于此音轨的当前大小。
ArrayIndexOutOfBoundsException
size()
public int size()
public long ticks()
Sequence
的计时精度确定,同时也取决于由 sequencer 设置的音乐的节拍。)
Sequence.Sequence(float, int)
,
Sequencer.setTempoInBPM(float)
,
Sequencer.getTickPosition()