Spec-Zone .ru
спецификации, руководства, описания, API
|
public class MidiSystem extends Object
MidiSystem
класс обеспечивает доступ к установленным системным ресурсам MIDI, включая устройства, такие как синтезаторы, секвенсеры, и порты входа и выхода MIDI. Типичное простое приложение MIDI могло бы начаться, вызывая один или больше MidiSystem
методы, чтобы изучить, какие устройства устанавливаются и получить тех необходимых в том приложении. У класса также есть методы для того, чтобы считать файлы, потоки, и URL, которые содержат стандартные данные файла MIDI или soundbanks. Можно запросить MidiSystem
для формата указанного файла MIDI.
Невозможно инстанцировать a MidiSystem
; все методы статичны.
Свойства могут использоваться, чтобы определить устройства MIDI по умолчанию. И системные свойства и файл свойств рассматривают. Файл свойств является "lib/sound.properties" в каталоге JRE. Если свойство существует и как системное свойство и в файле свойств, системное свойство имеет приоритет. Если ни один не определяется, подходящее значение по умолчанию выбирается среди доступных устройств. Синтаксис файла свойств определяется в Properties.load
. Следующая таблица приводит доступные ключи свойства и какие методы рассматривают их:
Ключ свойства | Интерфейс | Метод, на который влияют, |
---|---|---|
javax.sound.midi.Receiver |
Receiver |
getReceiver() |
javax.sound.midi.Sequencer |
Sequencer |
getSequencer() |
javax.sound.midi.Synthesizer |
Synthesizer |
getSynthesizer() |
javax.sound.midi.Transmitter |
Transmitter |
getTransmitter() |
MIDI device provider
класс. Имя устройства является соответствующим против String
возвращенный getName
метод MidiDevice.Info
. Или имя класса, или имя устройства может быть опущено. Если только имя класса определяется, запаздывающий знак "диез" дополнительный. Если класс провайдера определяется, и это может быть successully, полученный от установленных провайдеров, списка MidiDevice.Info
объекты получаются от провайдера. Иначе, или когда эти устройства не обеспечивают последующее соответствие, список получается от getMidiDeviceInfo()
содержать всех доступных MidiDevice.Info
объекты.
Если имя устройства определяется, получающийся список MidiDevice.Info
объекты ищутся: первый с соответствующим именем, и чей MidiDevice
реализует соответствующий интерфейс, будет возвращен. Если никакое соответствие MidiDevice.Info
объект находится, или имя устройства не определяется, первое подходящее устройство от получающегося списка будет возвращено. Для Секвенсера и Синтезатора, устройство является подходящим, если это реализует соответствующий интерфейс; тогда как для Получателя и Передатчика, устройство является подходящим, если это не реализует ни Секвенсера, ни Синтезатора и обеспечивает по крайней мере один Получатель или Передатчик, соответственно. Например, свойство javax.sound.midi.Receiver
со значением "com.sun.media.sound.MidiProvider#SunMIDI1"
будет иметь следующие последствия когда getReceiver
вызывается: если класс com.sun.media.sound.MidiProvider
существует в списке установленных провайдеров устройства MIDI, первого Receiver
устройство с именем "SunMIDI1"
будет возвращен. Если это не может быть найдено, первое Receiver
от того провайдера будет возвращен, независимо от имени. Если нет ни одного, первого Receiver
с именем "SunMIDI1"
в списке всех устройств (как возвращено getMidiDeviceInfo
) будет возвращен, или, если не найденный, первое Receiver
это может быть найдено в списке всех устройств, возвращается. Если это перестало работать, также, a MidiUnavailableException
бросается.
Модификатор и Тип | Метод и Описание |
---|---|
static MidiDevice |
getMidiDevice(MidiDevice.Info info)
Получает требуемое устройство MIDI.
|
static MidiDevice.Info[] |
getMidiDeviceInfo()
Получает массив информационных объектов, представляющих набор всех устройств MIDI, доступных на системе.
|
static MidiFileFormat |
getMidiFileFormat(File file)
Получает формат файла MIDI указанного
File . |
static MidiFileFormat |
getMidiFileFormat(InputStream stream)
Получает формат файла MIDI данных в указанном входном потоке.
|
static MidiFileFormat |
getMidiFileFormat(URL url)
Получает формат файла MIDI данных в указанном URL.
|
static int[] |
getMidiFileTypes()
Получает набор типов файлов MIDI, для которых поддержка записи файла оказывается системой.
|
static int[] |
getMidiFileTypes(Sequence sequence)
Получает набор типов файлов MIDI, которые система может записать из определенной последовательности.
|
static Receiver |
getReceiver()
Получает получатель MIDI из внешнего порта MIDI или другое устройство по умолчанию.
|
static Sequence |
getSequence(File file)
Получает последовательность MIDI из указанного
File . |
static Sequence |
getSequence(InputStream stream)
Получает последовательность MIDI из указанного входного потока.
|
static Sequence |
getSequence(URL url)
Получает последовательность MIDI из указанного URL.
|
static Sequencer |
getSequencer()
Получает значение по умолчанию
Sequencer , соединенный с устройством по умолчанию. |
static Sequencer |
getSequencer(boolean connected)
Получает значение по умолчанию
Sequencer , дополнительно соединенный с устройством по умолчанию. |
static Soundbank |
getSoundbank(File file)
Конструкции a
Soundbank читая это из указанного File . |
static Soundbank |
getSoundbank(InputStream stream)
Создает банк звуков MIDI, читая это из указанного потока.
|
static Soundbank |
getSoundbank(URL url)
Конструкции a
Soundbank читая это из указанного URL. |
static Synthesizer |
getSynthesizer()
Получает синтезатор по умолчанию.
|
static Transmitter |
getTransmitter()
Получает передатчик MIDI из внешнего порта MIDI или другого источника по умолчанию.
|
static boolean |
isFileTypeSupported(int fileType)
Указывает, оказывается ли поддержка записи файла указанного типа файла MIDI системой.
|
static boolean |
isFileTypeSupported(int fileType, Sequence sequence)
Указывает, может ли файл MIDI определенного типа файла быть записан из обозначенной последовательности.
|
static int |
write(Sequence in, int type, File out)
Пишет поток байтов, представляющих файл типа файла MIDI, обозначенного к внешнему обеспеченному файлу.
|
static int |
write(Sequence in, int fileType, OutputStream out)
Пишет поток байтов, представляющих файл типа файла MIDI, обозначенного к обеспеченному потоку вывода.
|
public static MidiDevice.Info[] getMidiDeviceInfo()
getMidiDevice
.MidiDevice.Info
объекты, один для каждого установленного устройства MIDI. Если никакие такие устройства не устанавливаются, массив длины 0 возвращается.public static MidiDevice getMidiDevice(MidiDevice.Info info) throws MidiUnavailableException
info
- объект информации об устройстве представление требуемого устройства.MidiUnavailableException
- если требуемое устройство не доступно из-за ограничений ресурсаIllegalArgumentException
- если объект информации не представляет устройство MIDI, установленное на системеgetMidiDeviceInfo()
public static Receiver getReceiver() throws MidiUnavailableException
MidiDeviceReceiver
интерфейс. Если системное свойство javax.sound.midi.Receiver
определяется или это определяется в файле "sound.properties", это используется, чтобы идентифицировать устройство, которое обеспечивает получатель по умолчанию. Для получения дополнительной информации обратитесь к class description
. Если подходящий порт MIDI не доступен, Получатель получается от установленного синтезатора.
Если собственный получатель, обеспеченный устройством по умолчанию, не реализует MidiDeviceReceiver
интерфейс, это будет обернуто в класс обертки, который реализует MidiDeviceReceiver
интерфейс. Соответствие Receiver
вызовы метода будут переданы собственному получателю.
Если этот метод возвращается успешно, MidiDevice
Receiver
принадлежит, открывается неявно, если это не уже открыто. Возможно закрыть неявно открытое устройство, вызывая close
на возвращенном Receiver
. Все открываются Receiver
экземпляры должны быть закрыты, чтобы выпустить системные ресурсы, содержат MidiDevice
. Поскольку подробное описание открытого/близкого поведения видит описание класса MidiDevice
.
MidiUnavailableException
- если получатель по умолчанию не доступен из-за ограничений ресурса, или никакие получатели обеспечения устройства не устанавливаются в системеpublic static Transmitter getTransmitter() throws MidiUnavailableException
MidiDeviceTransmitter
интерфейс. Если системное свойство javax.sound.midi.Transmitter
определяется или это определяется в файле "sound.properties", это используется, чтобы идентифицировать устройство, которое обеспечивает передатчик по умолчанию. Для получения дополнительной информации обратитесь к class description
.
Если собственный передатчик, обеспеченный устройством по умолчанию, не реализует MidiDeviceTransmitter
интерфейс, это будет обернуто в класс обертки, который реализует MidiDeviceTransmitter
интерфейс. Соответствие Transmitter
вызовы метода будут переданы собственному передатчику.
Если этот метод возвращается успешно, MidiDevice
Transmitter
принадлежит, открывается неявно, если это не уже открыто. Возможно закрыть неявно открытое устройство, вызывая close
на возвращенном Transmitter
. Все открываются Transmitter
экземпляры должны быть закрыты, чтобы выпустить системные ресурсы, содержат MidiDevice
. Поскольку подробное описание открытого/близкого поведения видит описание класса MidiDevice
.
MidiUnavailableException
- если передатчик по умолчанию не доступен из-за ограничений ресурса, или никакие передатчики обеспечения устройства не устанавливаются в системеpublic static Synthesizer getSynthesizer() throws MidiUnavailableException
Если системное свойство javax.sound.midi.Synthesizer
определяется или это определяется в файле "sound.properties", это используется, чтобы идентифицировать синтезатор по умолчанию. Для получения дополнительной информации обратитесь к class description
.
MidiUnavailableException
- если синтезатор не доступен из-за ограничений ресурса, или никакой синтезатор не устанавливается в системеpublic static Sequencer getSequencer() throws MidiUnavailableException
Sequencer
, соединенный с устройством по умолчанию. Возвращенный Sequencer
экземпляр соединяется со значением по умолчанию Synthesizer
, как возвращено getSynthesizer()
. Если есть нет Synthesizer
доступный, или значение по умолчанию Synthesizer
не может быть открыт, sequencer
соединяется со значением по умолчанию Receiver
, как возвращено getReceiver()
. Соединение делается, получая a Transmitter
экземпляр от Sequencer
и установка Receiver
. Закрытие и повторное открытие секвенсера восстановят соединение с устройством по умолчанию. Этот метод эквивалентен вызову getSequencer(true)
.
Если системное свойство javax.sound.midi.Sequencer
определяется или это определяется в файле "sound.properties", это используется, чтобы идентифицировать секвенсер по умолчанию. Для получения дополнительной информации обратитесь к class description
.
MidiUnavailableException
- если секвенсер не доступен из-за ограничений ресурса, или есть нет Receiver
доступный любым установленным MidiDevice
, или никакой секвенсер не устанавливается в системе.getSequencer(boolean)
, getSynthesizer()
, getReceiver()
public static Sequencer getSequencer(boolean connected) throws MidiUnavailableException
Sequencer
, дополнительно соединенный с устройством по умолчанию. Если connected
истина, возвращенный Sequencer
экземпляр соединяется со значением по умолчанию Synthesizer
, как возвращено getSynthesizer()
. Если есть нет Synthesizer
доступный, или значение по умолчанию Synthesizer
не может быть открыт, sequencer
соединяется со значением по умолчанию Receiver
, как возвращено getReceiver()
. Соединение делается, получая a Transmitter
экземпляр от Sequencer
и установка Receiver
. Закрытие и повторное открытие секвенсера восстановят соединение с устройством по умолчанию.
Если connected
ложь, возвращенный Sequencer
экземпляр не соединяется, он имеет не открытый Transmitters
. Чтобы играть секвенсер на устройстве MIDI, или a Synthesizer
, необходимо получить a Transmitter
и набор Receiver
.
Если системное свойство javax.sound.midi.Sequencer
определяется или это определяется в файле "sound.properties", это используется, чтобы идентифицировать секвенсер по умолчанию. Для получения дополнительной информации обратитесь к class description
.
MidiUnavailableException
- если секвенсер не доступен из-за ограничений ресурса, или никакой секвенсер не устанавливается в системе, или если connected
истина, и есть нет Receiver
доступный любым установленным MidiDevice
getSynthesizer()
, getReceiver()
public static Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException
stream
- источник данных банка звуков.InvalidMidiDataException
- если поток не указывает на допустимый MIDI soundbank на данные, распознанные системойIOException
- если ошибка ввода-вывода произошла, загружая soundbankInputStream.markSupported()
, InputStream.mark(int)
public static Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException
Soundbank
читая это из указанного URL. URL должен указать на допустимый MIDI soundbank на файл.url
- источник данных банка звуковInvalidMidiDataException
- если URL не указывает на допустимый MIDI soundbank на данные, распознанные системойIOException
- если ошибка ввода-вывода произошла, загружая soundbankpublic static Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException
Soundbank
читая это из указанного File
. File
должен указать на допустимый MIDI soundbank на файл.file
- источник данных банка звуковInvalidMidiDataException
- если File
не указывает на допустимый MIDI soundbank на данные, распознанные системойIOException
- если ошибка ввода-вывода произошла, загружая soundbankpublic static MidiFileFormat getMidiFileFormat(InputStream stream) throws InvalidMidiDataException, IOException
Этот метод и/или код, который это вызывает, возможно, должны считать некоторые данные из потока, чтобы определить, поддерживается ли его формат данных. Реализация, возможно, поэтому должна отметить поток, считать достаточно многие данные, чтобы определить, является ли это в поддерживаемом формате, и сбрасывало указатель чтения потока на свою исходную позицию. Если входной поток не разрешает этот набор операций, этот метод может перестать работать с IOException
.
Эта работа может только успешно выполниться для файлов типа, который может быть проанализирован установленным средством чтения файлов. Это может перестать работать с InvalidMidiDataException даже для правильных файлов, если никакое совместимое средство чтения файлов не устанавливается. Это также перестанет работать с InvalidMidiDataException, если совместимое средство чтения файлов будет установлено, но встретится с ошибками, определяя формат файла.
stream
- входной поток, из которого должна быть извлечена информация о формате файлаMidiFileFormat
объект, описывающий формат файла MIDIInvalidMidiDataException
- если поток не указывает на допустимые данные файла MIDI, распознанные системойIOException
- если исключение ввода-вывода происходит, получая доступ к потокуgetMidiFileFormat(URL)
, getMidiFileFormat(File)
, InputStream.markSupported()
, InputStream.mark(int)
public static MidiFileFormat getMidiFileFormat(URL url) throws InvalidMidiDataException, IOException
Эта работа может только успешно выполниться для файлов типа, который может быть проанализирован установленным средством чтения файлов. Это может перестать работать с InvalidMidiDataException даже для правильных файлов, если никакое совместимое средство чтения файлов не устанавливается. Это также перестанет работать с InvalidMidiDataException, если совместимое средство чтения файлов будет установлено, но встретится с ошибками, определяя формат файла.
url
- URL, из которого должна быть извлечена информация о формате файлаMidiFileFormat
объект, описывающий формат файла MIDIInvalidMidiDataException
- если URL не указывает на допустимые данные файла MIDI, распознанные системойIOException
- если исключение ввода-вывода происходит, получая доступ к URLgetMidiFileFormat(InputStream)
, getMidiFileFormat(File)
public static MidiFileFormat getMidiFileFormat(File file) throws InvalidMidiDataException, IOException
File
. File
должен указать на допустимые данные файла MIDI для типа файла, распознанного системой. Эта работа может только успешно выполниться для файлов типа, который может быть проанализирован установленным средством чтения файлов. Это может перестать работать с InvalidMidiDataException даже для правильных файлов, если никакое совместимое средство чтения файлов не устанавливается. Это также перестанет работать с InvalidMidiDataException, если совместимое средство чтения файлов будет установлено, но встретится с ошибками, определяя формат файла.
file
- File
из которого должна быть извлечена информация о формате файлаMidiFileFormat
объект, описывающий формат файла MIDIInvalidMidiDataException
- если File
не указывает на допустимые данные файла MIDI, распознанные системойIOException
- если исключение ввода-вывода происходит, получая доступ к файлуgetMidiFileFormat(InputStream)
, getMidiFileFormat(URL)
public static Sequence getSequence(InputStream stream) throws InvalidMidiDataException, IOException
Этот метод и/или код, который это вызывает, возможно, должны считать некоторые данные из потока, чтобы определить, поддерживается ли его формат данных. Реализация, возможно, поэтому должна отметить поток, считать достаточно многие данные, чтобы определить, является ли это в поддерживаемом формате, и сбрасывало указатель чтения потока на свою исходную позицию. Если входной поток не разрешает этот набор операций, этот метод может перестать работать с IOException
.
Эта работа может только успешно выполниться для файлов типа, который может быть проанализирован установленным средством чтения файлов. Это может перестать работать с InvalidMidiDataException даже для правильных файлов, если никакое совместимое средство чтения файлов не устанавливается. Это также перестанет работать с InvalidMidiDataException, если совместимое средство чтения файлов будет установлено, но встретится с ошибками, создавая Sequence
объект от данных файла.
stream
- входной поток тот, от который Sequence
должен быть созданSequence
основанный на объектах на данных файла MIDI содержится во входном потокеInvalidMidiDataException
- если поток не указывает на допустимые данные файла MIDI, распознанные системойIOException
- если исключение ввода-вывода происходит, получая доступ к потокуInputStream.markSupported()
, InputStream.mark(int)
public static Sequence getSequence(URL url) throws InvalidMidiDataException, IOException
Эта работа может только успешно выполниться для файлов типа, который может быть проанализирован установленным средством чтения файлов. Это может перестать работать с InvalidMidiDataException даже для правильных файлов, если никакое совместимое средство чтения файлов не устанавливается. Это также перестанет работать с InvalidMidiDataException, если совместимое средство чтения файлов будет установлено, но встретится с ошибками, создавая Sequence
объект от данных файла.
url
- URL тот, от который Sequence
должен быть созданSequence
основанный на объектах на данных файла MIDI указывается URLInvalidMidiDataException
- если URL не указывает на допустимые данные файла MIDI, распознанные системойIOException
- если исключение ввода-вывода происходит, получая доступ к URLpublic static Sequence getSequence(File file) throws InvalidMidiDataException, IOException
File
. File
должен указать на допустимые данные файла MIDI для типа файла, распознанного системой. Эта работа может только успешно выполниться для файлов типа, который может быть проанализирован установленным средством чтения файлов. Это может перестать работать с InvalidMidiDataException даже для правильных файлов, если никакое совместимое средство чтения файлов не устанавливается. Это также перестанет работать с InvalidMidiDataException, если совместимое средство чтения файлов будет установлено, но встретится с ошибками, создавая Sequence
объект от данных файла.
file
- File
от которого Sequence
должен быть созданSequence
основанный на объектах на данных файла MIDI указывается ФайломInvalidMidiDataException
- если Файл не указывает на допустимые данные файла MIDI, распознанные системойIOException
- если исключение ввода-вывода происходитpublic static int[] getMidiFileTypes()
public static boolean isFileTypeSupported(int fileType)
fileType
- тип файла, для которого запрашиваются возможности записиtrue
если тип файла поддерживается, иначе false
public static int[] getMidiFileTypes(Sequence sequence)
sequence
- последовательность, для которой запрашивается поддержка типа файла MIDIpublic static boolean isFileTypeSupported(int fileType, Sequence sequence)
fileType
- тип файла, для которого запрашиваются возможности записиsequence
- последовательность, для которой запрашивается поддержка записи файлаtrue
если тип файла поддерживается для этой последовательности, иначе false
public static int write(Sequence in, int fileType, OutputStream out) throws IOException
in
- последовательность, содержащая данные MIDI, которые будут записаны файлуfileType
- тип файла файла, который будет записан потоку выводаout
- поток, которому должны быть записаны данные файлаIOException
- если исключение ввода-вывода происходитIllegalArgumentException
- если формат файла не поддерживается системойisFileTypeSupported(int, Sequence)
, getMidiFileTypes(Sequence)
public static int write(Sequence in, int type, File out) throws IOException
in
- последовательность, содержащая данные MIDI, которые будут записаны файлуtype
- тип файла файла, который будет записан потоку выводаout
- внешний файл, которому должны быть записаны данные файлаIOException
- если исключение ввода-вывода происходитIllegalArgumentException
- если тип файла не поддерживается системойisFileTypeSupported(int, Sequence)
, getMidiFileTypes(Sequence)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.