2016-08-20 4 views
0

я смог clip.stop(), чтобы остановить текущий звук, если он немедленно не следуетclip.stop(); не останавливаясь аудио играть

clip.loop(Clip.LOOP_CONTINUOUSLY); 

Вот немного кода, который я в настоящее время с использованием последующим кодом, не производит звук.

try { 
    Clip clip = AudioSystem.getClip(); 
    if(clock == 2){ 
     clip.open(AudioSystem.getAudioInputStream(new File("res//battle.wav"))); 
     clip.loop(Clip.LOOP_CONTINUOUSLY); 
     System.out.println(clock); 
    } 
    if(clock >=300){ 
     clip.stop(); 
     xaxis+=100; 
     yaxis+=100; 
     System.out.println("we tried to stop"); 
    } 

try { 
    Clip clip = AudioSystem.getClip(); 
    if(clock == 2){ 
    clip.open(AudioSystem.getAudioInputStream(new File("res//battle.wav"))); 
    clip.loop(Clip.LOOP_CONTINUOUSLY); 
    clip.stop(); 
    System.out.println(clock); 
} 

В настоящее время часы = 2; происходит только один раз, в противном случае он будет перекрывать звук и захватывать всю память, загружая музыку. Любая помощь приветствуется. Спасибо.

ответ

0

прочитайте это внимательно:...

«Остановка линии Остановленный линия должна прекратить I/активность O Если линия открыта и работает, однако, она должна сохранить ресурсы, необходимые для возобновления деятельности Остановленный линии должен сохранять любые аудиоданные в своем буфере, а не отбрасывать их, так что при возобновлении ввода-вывода может продолжаться, где это возможно, (если это возможно) (это не гарантирует, что никогда не будет разрывов за пределами текущего буфера, конечно , если остановленное условие продолжится слишком долго, выборки ввода или вывода могут быть отброшены.) При желании сохраненные данные могут быть отброшены путем вызова метода флеша. Когда остановка аудио или воспроизведение прекращается, генерируется событие STOP ».

Смежные вопросы