Интерфейс Sequencer
- Все суперинтерфейсы:
- AutoCloseable, MidiDevice
public interface Sequencer extends MidiDevice
Устройство (аппаратное или программное), воспроизводящее MIDI , называется секвенсором. MIDI-последовательность содержит списки временных меток MIDI-данных, например, таких, которые могут быть прочитаны из стандартного MIDI-файла. Большинство секвенсоров также предоставляют функции для создания и редактирования последовательностей.sequence
Интерфейс Sequencer включает методы для следующих основных операций с MIDI-секвенсором:
- получение последовательности из данных MIDI-файла
- запуск и остановка воспроизведения
- переход к произвольной позиции в последовательности
- изменение темпа (скорости) воспроизведения
- синхронизация воспроизведения с внутренним часом или с полученными MIDI-сообщениями
- управление временем другого устройства
Sequencer имеет доступ: - редактирование данных путем добавления или удаления отдельных MIDI-событий или целых дорожек
- выключение или выделение отдельных дорожек в последовательности
- уведомление объектов-слушателей о любых метасобытиях или событиях изменения управления, встреченных во время воспроизведения последовательности.
- См. также:
-
Sequencer.SyncMode,addMetaEventListener(javax.sound.midi.MetaEventListener),ControllerEventListener,Receiver,Transmitter,MidiDevice
Вложенные классы
| Модификатор и тип | Интерфейс и описание |
|---|---|
static class |
Sequencer.SyncMode Объект |
Вложенные классы/интерфейсы, унаследованные от интерфейса javax.sound.midi.MidiDevice
MidiDevice.Info Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
LOOP_CONTINUOUSLY Значение, указывающее, что циклическое повторение должно продолжаться бесконечно, а не завершаться после определенного числа циклов. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
int[] |
addControllerEventListener(ControllerEventListener listener,
int[] controllers) Регистрирует слушателя событий управления, чтобы получать уведомления всякий раз, когда секвенсор обрабатывает событие изменения управления запрошенного типа или типов. |
boolean |
addMetaEventListener(MetaEventListener listener) Регистрирует слушателя метасобытий, чтобы получать уведомления всякий раз, когда в последовательности встречается метасобытие и обрабатывается секвенсором. |
int |
getLoopCount() Получает количество повторений для воспроизведения. |
long |
getLoopEndPoint() Получает конечную позицию цикла в тиках MIDI. |
long |
getLoopStartPoint() Получает начальную позицию цикла в тиках MIDI. |
Sequencer.SyncMode |
getMasterSyncMode() Получает текущий режим синхронизации мастера для этого секвенсора. |
Sequencer.SyncMode[] |
getMasterSyncModes() Получает набор режимов синхронизации мастера, поддерживаемых этим секвенсором. |
long |
getMicrosecondLength() Получает длину текущей последовательности в микросекундах или 0, если последовательность не задана. |
long |
getMicrosecondPosition() Получает текущую позицию в последовательности в микросекундах. |
Sequence |
getSequence() Получает последовательность, с которой в настоящее время работает Sequencer. |
Sequencer.SyncMode |
getSlaveSyncMode() Получает текущий режим синхронизации раба для этого секвенсора. |
Sequencer.SyncMode[] |
getSlaveSyncModes() Получает набор режимов синхронизации раба, поддерживаемых секвенсором. |
float |
getTempoFactor() Возвращает текущий коэффициент темпа для секвенсора. |
float |
getTempoInBPM() Получает текущий темп в ударах в минуту. |
float |
getTempoInMPQ() Получает текущий темп в микросекундах на четверть ноты. |
long |
getTickLength() Получает длину текущей последовательности в тиках MIDI или 0, если последовательность не задана. |
long |
getTickPosition() Получает текущую позицию в последовательности в тиках MIDI. |
boolean |
getTrackMute(int track) Получает текущее состояние выключения для дорожки. |
boolean |
getTrackSolo(int track) Получает текущее состояние выделения для дорожки. |
boolean |
isRecording() Указывает, записывает ли в данный момент Sequencer. |
boolean |
isRunning() Указывает, выполняется ли в данный момент Sequencer. |
void |
recordDisable(Track track) Отключает запись на указанную дорожку. |
void |
recordEnable(Track track,
int channel) Подготавливает указанную дорожку для записи событий, полученных на определенном канале. |
int[] |
removeControllerEventListener(ControllerEventListener listener,
int[] controllers) Удаляет интерес слушателя событий управления к одному или нескольким типам событий управления. |
void |
removeMetaEventListener(MetaEventListener listener) Удаляет указанного слушателя метасобытий из списка зарегистрированных слушателей секвенсора, если слушатель, фактически, зарегистрирован. |
void |
setLoopCount(int count) Устанавливает количество повторений цикла для воспроизведения. |
void |
setLoopEndPoint(long tick) Устанавливает последнюю отметку MIDI, которая будет воспроизводиться в цикле. |
void |
setLoopStartPoint(long tick) Устанавливает первую отметку MIDI, которая будет воспроизводиться в цикле. |
void |
setMasterSyncMode(Sequencer.SyncMode sync) Устанавливает источник временной информации, используемый этим секвенсором. |
void |
setMicrosecondPosition(long microseconds) Устанавливает текущую позицию в последовательности в микросекундах. |
void |
setSequence(InputStream stream) Устанавливает текущую последовательность, с которой работает секвенсор. |
void |
setSequence(Sequence sequence) Устанавливает текущую последовательность, с которой работает секвенсор. |
void |
setSlaveSyncMode(Sequencer.SyncMode sync) Устанавливает режим синхронизации раба для секвенсора. |
void |
setTempoFactor(float factor) Масштабирует фактический темп воспроизведения секвенсора на указанный коэффициент. |
void |
setTempoInBPM(float bpm) Устанавливает темп в ударах в минуту. |
void |
setTempoInMPQ(float mpq) Устанавливает темп в микросекундах на четверть ноты. |
void |
setTickPosition(long tick) Устанавливает текущую позицию секвенсора в тиках MIDI. |
void |
setTrackMute(int track,
boolean mute) Устанавливает состояние выключения для дорожки. |
void |
setTrackSolo(int track,
boolean solo) Устанавливает состояние выделения для дорожки. |
void |
start() Запускает воспроизведение MIDI-данных в загруженной последовательности. |
void |
startRecording() Запускает запись и воспроизведение MIDI-данных. |
void |
stop() Останавливает запись, если она активна, и воспроизведение загруженной последовательности, если она есть. |
void |
stopRecording() Останавливает запись, если она активна. |
Методы, унаследованные от интерфейса javax.sound.midi.MidiDevice
close, getDeviceInfo, getMaxReceivers, getMaxTransmitters, getReceiver, getReceivers, getTransmitter, getTransmitters, isOpen, open Поля
LOOP_CONTINUOUSLY
static final int LOOP_CONTINUOUSLY
Значение, указывающее, что цикл должен продолжаться бесконечно, а не завершаться после определенного числа циклов.
- Since:
- 1.5
- См. также:
-
setLoopCount(int), Значения константных полей
Методы
setSequence
void setSequence(Sequence sequence)
throws InvalidMidiDataException Устанавливает текущую последовательность, на которой работает секвенсор.
Этот метод можно вызвать даже если Sequencer закрыт.
- Параметры:
-
sequence- последовательность, которая должна быть загружена. - Исключения:
-
InvalidMidiDataException- если последовательность содержит некорректные данные MIDI или не поддерживается.
setSequence
void setSequence(InputStream stream)
throws IOException,
InvalidMidiDataException Устанавливает текущую последовательность, на которой работает секвенсор. Поток должен указывать на данные файла MIDI.
Этот метод можно вызвать даже если Sequencer закрыт.
- Параметры:
-
stream- поток, содержащий данные файла MIDI. - Исключения:
-
IOException- если при чтении потока произошла ошибка ввода-вывода. -
InvalidMidiDataException- если в потоке обнаружены некорректные данные или поток не поддерживается.
getSequence
Sequence getSequence()
Получает последовательность, на которой в данный момент работает секвенсор.
Этот метод можно вызвать даже если Sequencer закрыт.
- Возвращает:
- текущую последовательность или
null, если последовательность не установлена.
start
void start()
Запускает воспроизведение данных MIDI в загруженной последовательности. Воспроизведение начнется с текущей позиции. Если позиция воспроизведения достигает конечной точки цикла, а количество циклов больше 0, воспроизведение возобновится в точке начала цикла на заданное число повторений с помощью setLoopCount. После этого или если количество циклов равно 0, воспроизведение продолжится до конца последовательности.
Реализация гарантирует, что синтезатор при переходе к началу цикла переходит в согласованное состояние, отправляя соответствующие события управления, изменения высоты тона и смены программы.
- Исключения:
-
IllegalStateException- еслиSequencerзакрыт. - См. также:
-
setLoopStartPoint(long),setLoopEndPoint(long),setLoopCount(int),stop()
stop
void stop()
Останавливает запись, если она активна, и воспроизведение текущей загруженной последовательности, если таковая имеется.
- Исключения:
-
IllegalStateException- еслиSequencerзакрыт. - См. также:
-
start(),isRunning()
isRunning
boolean isRunning()
Указывает, запущена ли Sequencer в данный момент. По умолчанию false. Sequencer запускается, когда вызывается либо , либо start(). startRecording()isRunning возвращает true , пока воспроизведение последовательности не завершится или не вызовется . stop()
- Возвращает:
-
trueесли Sequencer запущен, в противном случаеfalse
startRecording
void startRecording()
Начинает запись и воспроизведение данных MIDI. Данные записываются во все включенные дорожки на канале(ах), для которого(ых) они были включены. Запись начинается с текущей позиции секвенсора. Любые события, уже присутствующие в дорожке, перезаписываются на время сессии записи. События из текущей загруженной последовательности, если таковая имеется, передаются в передатчик(и) секвенсора вместе с сообщениями, полученными во время записи.
Обратите внимание, что дорожки по умолчанию не включены для записи. Для записи данных MIDI необходимо, чтобы хотя бы одна дорожка была специально включена для записи.
- Исключения:
-
IllegalStateException- еслиSequencerзакрыт. - См. также:
-
startRecording(),recordEnable(javax.sound.midi.Track, int),recordDisable(javax.sound.midi.Track)
stopRecording
void stopRecording()
Останавливает запись, если она активна. Воспроизведение текущей последовательности продолжается.
- Исключения:
-
IllegalStateException- еслиSequencerзакрыт. - См. также:
-
startRecording(),isRecording()
isRecording
boolean isRecording()
Указывает, ведется ли в данный момент запись в Sequencer. По умолчанию false. Sequencer начинает запись, когда вызывается , а затем возвращает startRecording()true, пока не вызовется или stop(). stopRecording()
- Возвращает:
-
trueесли Sequencer записывает, в противном случаеfalse
recordEnable
void recordEnable(Track track,
int channel) Подготавливает указанную дорожку к записи событий, полученных на определенном канале. После включения дорожка будет получать события при активной записи.
- Параметры:
-
track- дорожка, в которую будут записываться события -
channel- канал, с которого будут приниматься события. Если для значения канала указано -1, дорожка будет получать данные со всех каналов. - Исключения:
-
IllegalArgumentException- выбрасывается, если дорожка не является частью текущей последовательности.
recordDisable
void recordDisable(Track track)
Отключает запись в указанную дорожку. События больше не будут записываться в эту дорожку.
- Параметры:
-
track- дорожка для отключения записи илиnullдля отключения записи для всех дорожек.
getTempoInBPM
float getTempoInBPM()
Получает текущее значение темпа, выраженное в ударах в минуту. Фактический темп воспроизведения является произведением возвращаемого значения и множителя темпа.
- Возвращает:
- текущий темп в ударах в минуту
- См. также:
-
getTempoFactor(),setTempoInBPM(float),getTempoInMPQ()
setTempoInBPM
void setTempoInBPM(float bpm)
Устанавливает темп в ударах в минуту. Фактический темп воспроизведения является произведением заданного значения и множителя темпа.
- Параметры:
-
bpm- желаемый новый темп в ударах в минуту - См. также:
-
getTempoFactor(),setTempoInMPQ(float),getTempoInBPM()
getTempoInMPQ
float getTempoInMPQ()
Получает текущее значение темпа, выраженное в микросекундах на четверть ноты. Фактический темп воспроизведения является произведением возвращаемого значения и множителя темпа.
- Возвращает:
- текущий темп в микросекундах на четверть ноты
- См. также:
-
getTempoFactor(),setTempoInMPQ(float),getTempoInBPM()
setTempoInMPQ
void setTempoInMPQ(float mpq)
Устанавливает темп в микросекундах на четверть ноты. Фактический темп воспроизведения является произведением заданного значения и множителя темпа.
- Параметры:
-
mpq- желаемый новый темп в микросекундах на четверть ноты. - См. также:
-
getTempoFactor(),setTempoInBPM(float),getTempoInMPQ()
setTempoFactor
void setTempoFactor(float factor)
Масштабирует фактический темп воспроизведения секвенсора на заданный множитель. По умолчанию 1.0. Значение 1.0 соответствует естественной скорости (темп, указанный в последовательности), 2.0 — вдвое быстрее и т. д. Множитель темпа не влияет на значения, возвращаемые и getTempoInMPQ(). Эти значения указывают темп до масштабирования.getTempoInBPM()
Обратите внимание, что множитель темпа нельзя настраивать при использовании внешней синхронизации. В этой ситуации setTempoFactor всегда устанавливает множитель темпа в 1,0.
- Параметры:
-
factor- требуемый множитель темпа - См. также:
getTempoFactor()
getTempoFactor
float getTempoFactor()
Возвращает текущий множитель темпа для секвенсора. По умолчанию 1.0.
- Возвращает:
- множитель темпа.
- См. также:
setTempoFactor(float)
getTickLength
long getTickLength()
Получает длину текущей последовательности, выраженную в тиках MIDI, или 0, если последовательность не установлена.
- Возвращает:
- длину последовательности в тиках
getTickPosition
long getTickPosition()
Получает текущую позицию в последовательности, выраженную в тиках MIDI. (Продолжительность тика в секундах определяется как темпом, так и разрешением временной шкалы, хранящейся в .)Sequence
- Возвращает:
- текущий тик
- См. также:
setTickPosition(long)
setTickPosition
void setTickPosition(long tick)
Устанавливает текущую позицию секвенсора в тиках MIDI
- Параметры:
-
tick- желаемая позиция тика - См. также:
getTickPosition()
getMicrosecondLength
long getMicrosecondLength()
Получает длину текущей последовательности, выраженную в микросекундах, или 0, если последовательность не установлена.
- Возвращает:
- длину последовательности в микросекундах.
getMicrosecondPosition
long getMicrosecondPosition()
Получает текущую позицию в последовательности, выраженную в микросекундах.
- Указано:
-
getMicrosecondPositionв интерфейсеMidiDevice - Возвращает:
- текущую позицию в микросекундах
- См. также:
setMicrosecondPosition(long)
setMicrosecondPosition
void setMicrosecondPosition(long microseconds)
Устанавливает текущую позицию в последовательности, выраженную в микросекундах
- Параметры:
-
microseconds- желаемая позиция в микросекундах - См. также:
getMicrosecondPosition()
setMasterSyncMode
void setMasterSyncMode(Sequencer.SyncMode sync)
Устанавливает источник информации о времени, используемый этим секвенсором. Секвенсор синхронизируется с главным источником, который представляет собой внутренние часы, MIDI-часы или MIDI-код времени, в зависимости от значения sync. Аргумент sync должен быть одним из поддерживаемых режимов, как возвращаемых .getMasterSyncModes()
- Параметры:
-
sync- желаемый режим синхронизации главного источника - См. также:
-
Sequencer.SyncMode.INTERNAL_CLOCK,Sequencer.SyncMode.MIDI_SYNC,Sequencer.SyncMode.MIDI_TIME_CODE,getMasterSyncMode()
getMasterSyncMode
Sequencer.SyncMode getMasterSyncMode()
Получает текущий режим синхронизации главного источника для этого секвенсора.
- Возвращает:
- текущий режим синхронизации главного источника
- См. также:
-
setMasterSyncMode(Sequencer.SyncMode),getMasterSyncModes()
getMasterSyncModes
Sequencer.SyncMode[] getMasterSyncModes()
Получает набор режимов синхронизации главного источника, поддерживаемых этим секвенсором.
- Возвращает:
- доступные режимы синхронизации главного источника
- См. также:
-
Sequencer.SyncMode.INTERNAL_CLOCK,Sequencer.SyncMode.MIDI_SYNC,Sequencer.SyncMode.MIDI_TIME_CODE,getMasterSyncMode(),setMasterSyncMode(Sequencer.SyncMode)
setSlaveSyncMode
void setSlaveSyncMode(Sequencer.SyncMode sync)
Устанавливает режим синхронизации ведомого источника для секвенсора. Это указывает на тип информации о времени, отправляемой секвенсором его получателю. Аргумент sync должен быть одним из поддерживаемых режимов, как возвращаемых .getSlaveSyncModes()
- Параметры:
-
sync- желаемый режим синхронизации ведомого источника - См. также:
-
Sequencer.SyncMode.MIDI_SYNC,Sequencer.SyncMode.MIDI_TIME_CODE,Sequencer.SyncMode.NO_SYNC,getSlaveSyncModes()
getSlaveSyncMode
Sequencer.SyncMode getSlaveSyncMode()
Получает текущий режим синхронизации ведомого источника для этого секвенсора.
- Возвращает:
- текущий режим синхронизации ведомого источника
- См. также:
-
setSlaveSyncMode(Sequencer.SyncMode),getSlaveSyncModes()
getSlaveSyncModes
Sequencer.SyncMode[] getSlaveSyncModes()
Получает набор режимов синхронизации ведомого источника, поддерживаемых секвенсором.
- Возвращает:
- доступные режимы синхронизации ведомого источника
- См. также:
-
Sequencer.SyncMode.MIDI_SYNC,Sequencer.SyncMode.MIDI_TIME_CODE,Sequencer.SyncMode.NO_SYNC
setTrackMute
void setTrackMute(int track,
boolean mute) Устанавливает состояние отключения трека. Этот метод может завершиться неудачей по ряду причин. Например, указанный номер трека может быть недействительным для текущей последовательности, или секвенсор может не поддерживать эту функциональность. Приложение, которому необходимо проверить, выполнилась ли эта операция успешно, должно последовать за этим вызовом вызовом .getTrackMute(int)
- Параметры:
-
track- номер трека. Трек в текущей последовательности пронумерованы с 0 до количества треков в последовательности минус 1. -
mute- новое состояние отключения для трека.trueозначает, что трек должен быть отключен,falseозначает, что трек должен быть включен. - См. также:
getSequence()
getTrackMute
boolean getTrackMute(int track)
Получает текущее состояние отключения трека. По умолчанию состояние отключения всех треков, которые не были отключены, равно false. В любом случае, где указанный трек не был отключен, этот метод должен вернуть false. Это относится к случаям, когда секвенсор не поддерживает отключение треков, и если указанный индекс трека недействителен.
- Параметры:
-
track- номер трека. Трек в текущей последовательности пронумерованы с 0 до количества треков в последовательности минус 1. - Возвращает:
-
trueесли отключен,falseесли нет.
setTrackSolo
void setTrackSolo(int track,
boolean solo) Устанавливает состояние соло для трека. Если solo равно true, то только этот трек и другие треки в режиме соло будут воспроизводиться. Если solo равно false, то будут воспроизводиться только другие треки в режиме соло, если треки не включены в режим сопоставления, в этом случае будут воспроизводиться все не отключенные треки.
Этот метод может завершиться неудачей по ряду причин. Например, указанный номер трека может быть недействительным для текущей последовательности, или секвенсор может не поддерживать эту функциональность. Приложение, которому необходимо проверить, выполнилась ли эта операция успешно, должно последовать за этим вызовом вызовом .getTrackSolo(int)
- Параметры:
-
track- номер трека. Трек в текущей последовательности пронумерованы с 0 до количества треков в последовательности минус 1. -
solo- новое состояние сопоставления для трека.trueозначает, что трек должен быть включен в режим сопоставления,falseозначает, что трек не должен быть включен в режим сопоставления. - См. также:
getSequence()
getTrackSolo
boolean getTrackSolo(int track)
Получает текущее состояние сопоставления для трека. По умолчанию состояние сопоставления всех треков, которые не были включены в режим сопоставления, равно false. В любом случае, где указанный трек не был включен в режим сопоставления, этот метод должен вернуть false. Это относится к случаям, когда секвенсор не поддерживает режим сопоставления треков, и если указанный индекс трека недействителен.
- Параметры:
-
track- номер трека. Трек в текущей последовательности пронумерованы с 0 до количества треков в последовательности минус 1. - Возвращает:
-
trueесли включен в режим сопоставления,falseесли нет.
addMetaEventListener
boolean addMetaEventListener(MetaEventListener listener)
Регистрирует слушателя мета-событий для получения уведомлений всякий раз, когда встречается мета-событие в последовательности и обрабатывается секвенсором. Этот метод может завершиться неудачей, если, например, этот класс секвенсора не поддерживает уведомление о мета-событиях.
- Параметры:
-
listener- добавляемый слушатель - Возвращает:
-
trueесли слушатель был успешно добавлен, в противном случаеfalse - См. также:
-
removeMetaEventListener(javax.sound.midi.MetaEventListener),MetaEventListener,MetaMessage
removeMetaEventListener
void removeMetaEventListener(MetaEventListener listener)
Удаляет указанного слушателя мета-событий из списка зарегистрированных слушателей этого секвенсора, если он, на самом деле, зарегистрирован.
- Параметры:
-
listener- слушатель мета-событий для удаления - См. также:
addMetaEventListener(javax.sound.midi.MetaEventListener)
addControllerEventListener
int[] addControllerEventListener(ControllerEventListener listener,
int[] controllers) Регистрирует слушателя событий управления для получения уведомлений всякий раз, когда секвенсор обрабатывает событие изменения управления запрошенного типа или типов. Типы задаются аргументом controllers, который должен содержать массив номеров MIDI-контроллеров. (Каждое число должно быть от 0 до 127 включительно. См. спецификацию MIDI 1.0 для номеров, соответствующих различным типам контроллеров.)
Возвращаемый массив содержит номера MIDI-контроллеров, изменения которых теперь будут сообщаться слушателю. Некоторые секвенсоры могут не поддерживать уведомления об событиях управления, в этом случае длина массива равна 0. Другие секвенсоры могут поддерживать уведомления для некоторых контроллеров, но не для всех. Этот метод может вызываться многократно. Каждый раз возвращаемый массив показывает все контроллеры, о которых слушатель будет уведомлен, а не только контроллеры, запрошенные в данном конкретном вызове.
- Параметры:
-
listener- слушатель событий управления, добавляемый в список зарегистрированных слушателей -
controllers- номера MIDI-контроллеров, для которых требуется уведомление об изменениях - Возвращает:
- номера всех MIDI-контроллеров, изменения которых теперь будут сообщаться указанному слушателю
- См. также:
-
removeControllerEventListener(javax.sound.midi.ControllerEventListener, int[]),ControllerEventListener
removeControllerEventListener
int[] removeControllerEventListener(ControllerEventListener listener,
int[] controllers) Удаляет интерес слушателя событий управления к одному или нескольким типам событий управления. Аргумент controllers — массив MIDI-номеров, соответствующих контроллерам, для которых слушатель больше не должен получать уведомления об изменениях. Чтобы полностью удалить этого слушателя из списка зарегистрированных слушателей, передайте null для controllers. Возвращаемый массив содержит номера MIDI-контроллеров, изменения которых теперь будут сообщаться слушателю. Длина массива равна 0, если слушатель не будет получать уведомления об изменениях для каких-либо контроллеров.
- Параметры:
-
listener- старый слушатель -
controllers- номера MIDI-контроллеров, для которых должна быть отменена уведомление о изменении, илиnullдля отмены для всех контроллеров - Возвращает:
- номера всех MIDI-контроллеров, изменения которых теперь будут сообщаться указанному слушателю
- См. также:
addControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
установить начальную точку цикла
void setLoopStartPoint(long tick)
Устанавливает первую MIDI-метку, которая будет воспроизводиться в цикле. Если количество повторений цикла больше 0, воспроизведение перейдёт к этой метке при достижении конечной точки цикла.
Значение 0 для начальной точки означает начало загруженной последовательности. Начальная точка должна быть меньше или равна конечной точке и должна находиться в пределах загруженной последовательности.
Начальная точка цикла секвенсора по умолчанию - начало последовательности.
- Параметры:
-
tick- начальная позиция цикла в MIDI-метках (нумерация с нуля) - Исключения:
-
IllegalArgumentException- если заданную начальную точку цикла установить невозможно, обычно потому, что она выходит за пределы продолжительности последовательности или потому, что начальная точка находится после конечной - С:
- 1.5
- См. также:
-
setLoopEndPoint(long),setLoopCount(int),getLoopStartPoint(),start()
получить начальную точку цикла
long getLoopStartPoint()
Получает начальную позицию цикла в MIDI-метках.
- Возвращает:
- начальную позицию цикла в MIDI-метках (нумерация с нуля)
- С:
- 1.5
- См. также:
setLoopStartPoint(long)
установить конечную точку цикла
void setLoopEndPoint(long tick)
Устанавливает последнюю MIDI-метку, которая будет воспроизводиться в цикле. Если количество повторений цикла равно 0, конечная точка цикла не имеет эффекта, и воспроизведение продолжается до достижения конечной точки цикла.
Значение -1 для конечной точки означает последнюю метку последовательности. В противном случае конечная точка должна быть больше или равна начальной точке и должна находиться в пределах загруженной последовательности.
Конечная точка цикла секвенсора по умолчанию - -1, что означает конец последовательности.
- Параметры:
-
tick- конечная позиция цикла в MIDI-метках (нумерация с нуля) или -1 для обозначения последней метки - Исключения:
-
IllegalArgumentException- если заданную конечную точку цикла установить невозможно, обычно потому, что она выходит за пределы продолжительности последовательности или потому, что конечная точка находится перед начальной - С:
- 1.5
- См. также:
-
setLoopStartPoint(long),setLoopCount(int),getLoopEndPoint(),start()
получить конечную точку цикла
long getLoopEndPoint()
Получает конечную позицию цикла в MIDI-метках.
- Возвращает:
- конечную позицию цикла в MIDI-метках (нумерация с нуля) или -1 для обозначения конца последовательности
- С:
- 1.5
- См. также:
setLoopEndPoint(long)
установить количество повторений цикла
void setLoopCount(int count)
Устанавливает количество повторений цикла во время воспроизведения. Когда позиция воспроизведения достигает конечной точки цикла, она возвращается к начальной точке цикла count раз, после чего воспроизведение продолжается до конца последовательности.
Если текущая позиция в момент вызова этого метода больше конечной точки цикла, воспроизведение продолжается до конца последовательности без циклирования, если не изменится конечная точка цикла впоследствии.
Значение count 0 отключает циклирование: воспроизведение будет продолжаться в конечной точке цикла и не вернётся к начальной точке цикла. Это значение по умолчанию для секвенсора.
Если воспроизведение останавливается во время циклирования, текущий статус цикла сбрасывается; последующие запросы на запуск не будут зависеть от прерванной операции циклирования.
- Параметры:
-
count- количество раз, когда воспроизведение должно возвращаться из конечной позиции цикла в начальную позицию цикла, илидля обозначения непрерывного циклирования до его прерыванияLOOP_CONTINUOUSLY - Исключения:
-
IllegalArgumentException- еслиcountотрицательно и не равноLOOP_CONTINUOUSLY - С:
- 1.5
- См. также:
-
setLoopStartPoint(long),setLoopEndPoint(long),getLoopCount(),start()
получить количество повторений цикла
int getLoopCount()
Получает количество повторений во время воспроизведения.
- Возвращает:
- количество циклов после которого воспроизведение переходит к концу последовательности
- С:
- 1.5
- См. также:
-
setLoopCount(int),start()
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.