Clip.stop () останавливается на несколько секунд - PullRequest
3 голосов
/ 13 сентября 2011

У меня есть класс Sample и Clip внутри, написанный на Java.Я играю в цикле:

public void play() {
  clip.loop(Clip.LOOP_CONTINUOUSLY);
}

У меня также есть метод остановки:

public void stop() {
  clip.stop();
}

, и я хочу остановить его, когда инициализируется новый экземпляр Sample (и запускаетсяиграть) используя Scala.

def setSample = {
  if (sample != null) {
    sample.stop
  }
  sample = new Sample(track, this)
  if (isPlay == true) {
    sample.play()
  }
}

Проблема в том, что clip.stop () зависает на несколько секунд, поэтому следующий не воспроизводится сразу, как я ожидал.Что я могу сделать с этим?И почему это происходит?

// edit

Я попытался использовать метод close () и снова открыть клип перед новым loop ().Тот же эффект.

1 Ответ

1 голос
/ 04 ноября 2011

Я не специалист по Java / звуку, просто сделал несколько всплесков ранее.Согласно моим тестам и литературе, Java Sound API для Windows имеет некоторые ограничения.Следовательно, если вы работаете в Windows, вы можете попробовать ASIO получить решение для воспроизведения с низкой задержкой.См .: http://en.wikipedia.org/wiki/Audio_stream_input_output, специально вам понадобится драйвер ASIO4ALL и оболочка JAsioHost Java.

...