- java.lang.Object
-
- javax.sound.midi.MidiFileFormat
-
public class MidiFileFormat extends Object
一个MidiFileFormat对象封装了一个MIDI文件的类型,以及它的长度和时间信息。一个
MidiFileFormat对象可以包括一组属性。 属性是一对键和值:键的类型为String,关联的属性值是任意对象。 属性指定其他信息元数据(如作者或版权)。 属性是可选信息,文件读取器和文件写入器实现不需要提供或识别属性。下表列出了在实现中应该使用的一些常见属性:
MIDI File Format Properties Property key Value type Description "author"Stringname of the author of this file "title"Stringtitle of this file "copyright"Stringcopyright message "date"Datedate of the recording or release "comment"Stringan arbitrary text
-
-
Field Summary
Fields Modifier and Type Field 描述 protected intbyteLengthMIDI文件的长度(以字节为单位)。protected floatdivisionTypeMIDI文件的分割类型。protected longmicrosecondLengthMIDI文件的持续时间(以微秒为单位)。protected intresolutionMIDI文件的时间分辨率。protected inttypeMIDI文件的类型。static intUNKNOWN_LENGTH代表未知长度。
-
构造方法摘要
构造方法 Constructor 描述 MidiFileFormat(int type, float divisionType, int resolution, int bytes, long microseconds)构造一个MidiFileFormat。MidiFileFormat(int type, float divisionType, int resolution, int bytes, long microseconds, Map<String,Object> properties)构造一个MidiFileFormat与一组属性。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 intgetByteLength()获取MIDI文件的长度,以8位字节表示。floatgetDivisionType()获取MIDI文件的时序分割类型。longgetMicrosecondLength()获取MIDI文件的长度,以微秒表示。ObjectgetProperty(String key)获取由密钥指定的属性值。intgetResolution()获取MIDI文件的时间分辨率。intgetType()获取MIDI文件类型。Map<String,Object>properties()获取不可修改的属性地图。
-
-
-
字段详细信息
-
UNKNOWN_LENGTH
public static final int UNKNOWN_LENGTH
代表未知长度。
-
type
protected int type
MIDI文件的类型。
-
divisionType
protected float divisionType
MIDI文件的分割类型。
-
resolution
protected int resolution
MIDI文件的时间分辨率。
-
byteLength
protected int byteLength
MIDI文件的长度(以字节为单位)。
-
microsecondLength
protected long microsecondLength
MIDI文件的持续时间(以微秒为单位)。
-
-
构造方法详细信息
-
MidiFileFormat
public MidiFileFormat(int type, float divisionType, int resolution, int bytes, long microseconds)构造一个MidiFileFormat。- 参数
-
type- MIDI文件类型(0,1或2) -
divisionType- 时序分割类型(PPQ或SMPTE类型之一) -
resolution- 时序分辨率 -
bytes- MIDI文件的长度(以字节为单位),如果未知,则为UNKNOWN_LENGTH -
microseconds- 文件的持续时间(以微秒为单位),如果不知道则为UNKNOWN_LENGTH - 另请参见:
-
UNKNOWN_LENGTH,Sequence.PPQ,Sequence.SMPTE_24,Sequence.SMPTE_25,Sequence.SMPTE_30DROP,Sequence.SMPTE_30
-
MidiFileFormat
public MidiFileFormat(int type, float divisionType, int resolution, int bytes, long microseconds, Map<String,Object> properties)构造一个MidiFileFormat与一组属性。- 参数
-
type- MIDI文件类型(0,1或2) -
divisionType- 时序分割类型(PPQ或SMPTE类型之一) -
resolution- 时序分辨率 -
bytes- MIDI文件的长度(以字节为单位),如果不知道则为UNKNOWN_LENGTH -
microseconds- 文件的持续时间(以微秒为单位),如果不知道则为UNKNOWN_LENGTH -
properties- 一个Map<String,Object>具有属性的对象 - 从以下版本开始:
- 1.5
- 另请参见:
-
UNKNOWN_LENGTH,Sequence.PPQ,Sequence.SMPTE_24,Sequence.SMPTE_25,Sequence.SMPTE_30DROP,Sequence.SMPTE_30
-
-
方法详细信息
-
getType
public int getType()
获取MIDI文件类型。- 结果
- 文件的类型(0,1或2)
-
getDivisionType
public float getDivisionType()
获取MIDI文件的时序分割类型。- 结果
- 分区类型(PPQ或SMPTE类型之一)
- 另请参见:
-
Sequence(float, int),Sequence.PPQ,Sequence.SMPTE_24,Sequence.SMPTE_25,Sequence.SMPTE_30DROP,Sequence.SMPTE_30,Sequence.getDivisionType()
-
getResolution
public int getResolution()
获取MIDI文件的时间分辨率。 如果分割类型为PPQ,则分辨率以每搏拍数为单位指定。 对于SMTPE时间,分辨率以帧为单位指定。- 结果
- 每搏拍数(PPQ)或每帧(SMPTE)
- 另请参见:
-
getDivisionType(),Sequence.getResolution()
-
getByteLength
public int getByteLength()
获取MIDI文件的长度,以8位字节表示。- 结果
- 文件中的字节数,如果不知道则为UNKNOWN_LENGTH
- 另请参见:
-
UNKNOWN_LENGTH
-
getMicrosecondLength
public long getMicrosecondLength()
获取MIDI文件的长度,以微秒表示。- 结果
- 文件的持续时间(以微秒为单位),如果不知道则为UNKNOWN_LENGTH
- 另请参见:
-
Sequence.getMicrosecondLength(),getByteLength(),UNKNOWN_LENGTH
-
properties
public Map<String,Object> properties()
获取不可修改的属性地图。 属性的概念在class description中进一步解释。- 结果
-
一个包含所有属性的
Map<String,Object>对象。 如果没有属性被识别,则返回空的地图。 - 从以下版本开始:
- 1.5
- 另请参见:
-
getProperty(String)
-
getProperty
public Object getProperty(String key)
- 参数
-
key- 所需属性的关键 - 结果
-
具有指定键的属性的值,如果属性不存在,
null - 从以下版本开始:
- 1.5
- 另请参见:
-
properties()
-
-