javax.sound.midi

接口
异常
java.lang.Object
  继承者 javax.sound.midi.MidiFileFormat

public class MidiFileFormat
     
extends Object

MidiFileFormat 对象,它封装了 MIDI 文件的类型、长度和定时信息。

MidiFileFormat 对象可包含一组属性。属性是一对键和值:键的类型是 String,关联属性值是任意对象。属性指定其他的信息元数据(如作者或版权)。属性是可选信息,不要求文件 reader 和文件 writer 实现提供或识别属性。

下表列出了一些应在实现中使用的常见属性:

属性键 值类型 描述
"author" String 此文件的作者名
"title" String 此文件的标题
"copyright" String 版权消息
"date" Date 录制或发行日期
"comment" String 任意文本

另请参见:
MidiSystem.getMidiFileFormat(java.io.File), Sequencer.setSequence(java.io.InputStream stream)

字段摘要
protected  int byteLength
          MIDI 文件的长度,以字节为单位。
protected  float divisionType
          MIDI 文件的 division 类型。
protected  long microsecondLength
          MIDI 文件的持续时间,以微秒为单位。
protected  int resolution
          MIDI 文件的定时精度。
protected  int type
          MIDI 文件的类型。
static int UNKNOWN_LENGTH
          表示未知长度。
 
构造方法摘要
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
 
方法摘要
 int getByteLength()
          获得 MIDI 文件的长度,用 8 位字节表示。
 float getDivisionType()
          获得 MIDI 文件的定时 division 类型。
 long getMicrosecondLength()
          获得 MIDI 文件的长度,用微秒表示。
 Object getProperty(String key)
          获得由键指定的属性值。
 int getResolution()
          获得 MIDI 文件的定时精度。
 int getType()
          获得 MIDI 文件类型。
 Map<String,Object> properties()
          获得属性的一个不可修改的映射。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

UNKNOWN_LENGTH

public static final int UNKNOWN_LENGTH
表示未知长度。

另请参见:
getByteLength(), getMicrosecondLength(), 常量字段值

type

protected int type
MIDI 文件的类型。


divisionType

protected float divisionType
MIDI 文件的 division 类型。

另请参见:
Sequence.PPQ, Sequence.SMPTE_24, Sequence.SMPTE_25, Sequence.SMPTE_30DROP, Sequence.SMPTE_30

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 - 定时 division 类型(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 - 定时 division 类型(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 文件的定时 division 类型。

返回:
division 类型(PPQ 或某一 SMPTE 类型)
另请参见:
Sequence.Sequence(float, int), Sequence.PPQ, Sequence.SMPTE_24, Sequence.SMPTE_25, Sequence.SMPTE_30DROP, Sequence.SMPTE_30, Sequence.getDivisionType()

getResolution

public int getResolution()
获得 MIDI 文件的定时精度。如果 division 类型为 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()
获得属性的一个不可修改的映射。在 类描述中对属性的概念进行了进一步的介绍。

返回:
一个包含所有属性的 Map<String,Object> 对象。如果没有任何可识别的属性,则返回一个空映射。
从以下版本开始:
1.5
另请参见:
getProperty(String)

getProperty

public Object getProperty(String key)
获得由键指定的属性值。在 类描述中对属性的概念进行了进一步的介绍。

如果对于一个特定的文件格式,指定的属性未定义,则此方法返回 null

参数:
key - 所需属性的键
返回:
具有指定键的属性的值,如果此属性不存在,则返回 null
从以下版本开始:
1.5
另请参见:
properties