Spec-Zone.ru › OpenJDK 17

Интерфейс Sequencer

Все суперинтерфейсы:
AutoCloseable, MidiDevice
public interface Sequencer extends MidiDevice
Устройство аппаратного или программного обеспечения, которое воспроизводит MIDI sequence, называется секвенсором. MIDI-последовательность содержит списки временных меток MIDI-данных, например, таких, которые могут быть прочитаны из стандартного MIDI-файла. Большинство секвенсоров также предоставляют функции для создания и редактирования последовательностей.

Интерфейс Sequencer включает методы для следующих основных операций MIDI-секвенсора:

  • получение последовательности из данных MIDI-файла
  • старт и остановка воспроизведения
  • переход к произвольной позиции в последовательности
  • изменение темпа (скорости) воспроизведения
  • синхронизация воспроизведения с внутренним таймером или с полученными MIDI-сообщениями
  • управление временем работы другого устройства
Кроме того, поддерживаются следующие операции, либо напрямую, либо косвенно через объекты, к которым у Sequencer есть доступ:
  • редактирование данных путем добавления или удаления отдельных MIDI-событий или целых дорожек
  • выключение или активация отдельных дорожек в последовательности
  • уведомление объектов-слушателей о любых мета-событиях или событиях изменения управления, встреченных во время воспроизведения последовательности
См. также:
  • Sequencer.SyncMode
  • addMetaEventListener(javax.sound.midi.MetaEventListener)
  • ControllerEventListener
  • Receiver
  • Transmitter
  • MidiDevice

Краткое описание вложенных классов

Modifier and Type Interface Description
static class  Sequencer.SyncMode
Объект SyncMode представляет один из способов синхронизации понятия времени MIDI-секвенсора с устройством-мастером или устройством-рабочим.

Вложенные классы/интерфейсы, объявленные в интерфейсе javax.sound.midi.MidiDevice

MidiDevice.Info

Краткое описание полей

Modifier and Type Field Description
static final int LOOP_CONTINUOUSLY
Значение, указывающее, что циклическое воспроизведение должно продолжаться неограниченно, а не завершиться после определенного количества циклов.

Краткое описание методов

Modifier and Type Method Description
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.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()
Указывает, записывает ли в данный момент секвенсор.
boolean isRunning()
Указывает, работает ли в данный момент секвенсор.
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
Значение, указывающее, что циклическое воспроизведение должно продолжаться бесконечно, а не завершаться после определенного количества циклов.
С момента:
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()
Указывает, запущен ли в настоящее время секвенсор. По умолчанию false. Секвенсор начинает работу, когда вызывается либо start(), либо startRecording(). isRunning затем возвращает true до завершения воспроизведения последовательности или вызова stop().
Возвращает:
true если секвенсор запущен, в противном случае false

startRecording

void startRecording()
Запускает запись и воспроизведение данных MIDI. Данные записываются во все включенные дорожки на канале(ах), для которых они были включены. Запись начинается в текущей позиции секвенсора. Любые события, уже находящиеся в дорожке, перезаписываются на период сессии записи. События из текущей загруженной последовательности, если таковые имеются, передаются передатчикам секвенсора вместе с сообщениями, полученными во время записи.

Обратите внимание, что дорожки по умолчанию не включены для записи. Для записи данных MIDI необходимо, чтобы хотя бы одна дорожка была специально включена для записи.

Исключения:
IllegalStateException - если Sequencer закрыт
См. также:
  • recordEnable(javax.sound.midi.Track, int)
  • recordDisable(javax.sound.midi.Track)

stopRecording

void stopRecording()
Останавливает запись, если она активна. Воспроизведение текущей последовательности продолжается.
Исключения:
IllegalStateException - если Sequencer закрыт
См. также:
  • startRecording()
  • isRecording()

isRecording

boolean isRecording()
Указывает, находится ли секвенсор в процессе записи. По умолчанию false. Секвенсор начинает запись, когда вызывается startRecording(), а затем возвращает true до тех пор, пока не будет вызван stop() или stopRecording().
Возвращает:
true если секвенсор записывает, в противном случае 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(SyncMode)
  • getMasterSyncModes()

getMasterSyncModes

Sequencer.SyncMode[] getMasterSyncModes()
Получает набор режимов синхронизации с мастером, поддерживаемых этим секвенсором.
Возвращает:
доступные режимы синхронизации с мастером
См. также:
  • Sequencer.SyncMode.INTERNAL_CLOCK
  • Sequencer.SyncMode.MIDI_SYNC
  • Sequencer.SyncMode.MIDI_TIME_CODE
  • getMasterSyncMode()
  • setMasterSyncMode(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(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)
Регистрирует слушателя мета-событий для получения уведомлений всякий раз, когда в последовательности встречается мета-событие и оно обрабатывается секвенсором. Данный метод может завершиться неудачей, если, например, данный класс секвенсора не поддерживает уведомления о мета-событиях.
Parameters:
listener - слушатель для добавления
Returns:
true если слушатель был успешно добавлен, в противном случае false
See Also:
  • removeMetaEventListener(javax.sound.midi.MetaEventListener)
  • MetaEventListener
  • MetaMessage

removeMetaEventListener

void removeMetaEventListener(MetaEventListener listener)
Удаляет указанного слушателя мета-событий из списка зарегистрированных слушателей секвенсора, если он действительно зарегистрирован.
Parameters:
listener - слушатель мета-событий для удаления
See Also:
  • addMetaEventListener(javax.sound.midi.MetaEventListener)

addControllerEventListener

int[] addControllerEventListener(ControllerEventListener listener, int[] controllers)
Регистрирует слушателя событий контроллера для получения уведомлений всякий раз, когда секвенсор обрабатывает событие изменения контроллера указанного типа или типов. Типы задаются аргументом controllers, который должен содержать массив номеров MIDI-контроллеров. (Каждое число должно быть от 0 до 127 включительно. Обратитесь к спецификации MIDI 1.0 для получения номеров, соответствующих различным типам контроллеров.)

Возвращаемый массив содержит номера MIDI-контроллеров, для которых слушатель теперь будет получать события. Некоторые секвенсоры могут не поддерживать уведомления о событиях контроллеров, в этом случае массив имеет длину 0. Другие секвенсоры могут поддерживать уведомления для некоторых контроллеров, но не для всех. Данный метод можно вызывать многократно. Каждый раз возвращаемый массив указывает все контроллеры, о которых слушатель будет уведомлен, а не только те, которые были запрошены в конкретном вызове.

Parameters:
listener - слушатель событий контроллера для добавления в список зарегистрированных слушателей
controllers - номера MIDI-контроллеров, для которых запрашивается уведомление об изменении
Returns:
номера всех MIDI-контроллеров, изменения которых теперь будут сообщаться указанному слушателю
See Also:
  • removeControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
  • ControllerEventListener

removeControllerEventListener

int[] removeControllerEventListener(ControllerEventListener listener, int[] controllers)
Удаляет интерес слушателя событий контроллера к одному или нескольким типам событий контроллера. Аргумент controllers — массив MIDI-номеров, соответствующих контроллерам, для которых слушатель больше не должен получать уведомления об изменениях. Для полного удаления этого слушателя из списка зарегистрированных слушателей передайте null для controllers. Возвращаемый массив содержит номера MIDI-контроллеров, для которых слушатель теперь будет получать события. Длина массива равна 0, если слушатель не будет получать уведомления об изменениях ни для каких контроллеров.
Parameters:
listener - старый слушатель
controllers - номера MIDI-контроллеров, для которых уведомления об изменениях должны быть отменены, или null для отмены для всех контроллеров
Returns:
номера всех MIDI-контроллеров, изменения которых теперь будут сообщаться указанному слушателю
See Also:
  • addControllerEventListener(javax.sound.midi.ControllerEventListener, int[])

setLoopStartPoint

void setLoopStartPoint(long tick)
Устанавливает первую метку MIDI, которая будет воспроизводиться в цикле. Если количество повторений цикла больше 0, воспроизведение перескочит к этой точке при достижении конечной точки цикла.

Значение 0 для начальной точки означает начало загруженной последовательности. Начальная точка должна быть меньше или равна конечной точке, и она должна находиться в пределах размера загруженной последовательности.

Начальная точка цикла секвенсора по умолчанию - начало последовательности.

Parameters:
tick - начальная позиция цикла в метках MIDI (нумерация с нуля)
Throws:
IllegalArgumentException - если заданную начальную точку цикла нельзя установить, обычно потому, что она выходит за пределы продолжительности последовательности или потому, что начальная точка стоит после конечной точки
Since:
1.5
See Also:
  • setLoopEndPoint(long)
  • setLoopCount(int)
  • getLoopStartPoint()
  • start()

getLoopStartPoint

long getLoopStartPoint()
Получает начальную позицию цикла в метках MIDI.
Returns:
начальная позиция цикла в метках MIDI (нумерация с нуля)
Since:
1.5
See Also:
  • setLoopStartPoint(long)

setLoopEndPoint

void setLoopEndPoint(long tick)
Устанавливает последнюю метку MIDI, которая будет воспроизводиться в цикле. Если количество повторений цикла равно 0, конечная точка цикла не имеет эффекта, и воспроизведение продолжает воспроизведение при достижении конечной точки цикла.

Значение -1 для конечной точки указывает на последнюю метку последовательности. В противном случае конечная точка должна быть больше или равна начальной точке, и она должна находиться в пределах размера загруженной последовательности.

Конечная точка цикла секвенсора по умолчанию равна -1, что означает конец последовательности.

Parameters:
tick - конечная позиция цикла в метках MIDI (нумерация с нуля), или -1 для обозначения последней метки
Throws:
IllegalArgumentException - если заданную конечную точку цикла нельзя установить, обычно потому, что она выходит за пределы продолжительности последовательности или потому, что конечная точка стоит перед начальной точкой
Since:
1.5
See Also:
  • setLoopStartPoint(long)
  • setLoopCount(int)
  • getLoopEndPoint()
  • start()

getLoopEndPoint

long getLoopEndPoint()
Получает конечную позицию цикла в метках MIDI.
Returns:
конечная позиция цикла в метках MIDI (нумерация с нуля), или -1 для обозначения конца последовательности
Since:
1.5
See Also:
  • setLoopEndPoint(long)

setLoopCount

void setLoopCount(int count)
Устанавливает количество повторений цикла для воспроизведения. Когда позиция воспроизведения достигает конечной точки цикла, она перейдет к начальной точке цикла count раз, после чего воспроизведение продолжится до конца последовательности.

Если текущая позиция в момент вызова этого метода больше конечной точки цикла, воспроизведение продолжится до конца последовательности без циклирования, если не будет изменена конечная точка цикла позже.

Значение count 0 отключает циклирование: воспроизведение продолжится в конечной точке цикла, и оно не вернется к начальной точке цикла. Это значение по умолчанию для секвенсора.

Если воспроизведение приостановлено во время циклирования, текущий статус цикла сброшен; последующие запросы запуска не будут затронуты прерванной циклической операцией.

Parameters:
count - количество раз, когда воспроизведение должно вернуться из конечной позиции цикла в начальную позицию цикла, или LOOP_CONTINUOUSLY для указания, что циклирование должно продолжаться до прерывания
Throws:
IllegalArgumentException - если count отрицательное и не равно LOOP_CONTINUOUSLY
Since:
1.5
See Also:
  • setLoopStartPoint(long)
  • setLoopEndPoint(long)
  • getLoopCount()
  • start()

getLoopCount

int getLoopCount()
Получает количество повторений для воспроизведения.
Returns:
количество циклов после которого воспроизведение доходит до конца последовательности
Since:
1.5
See Also:
  • setLoopCount(int)
  • start()

© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/sound/midi/Sequencer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API