Daha büyük bir uygulama çalıştırıyorsanız, bu yanıt geçerli olmayabilir. Ama kod sadece o parça ile basit bir test için, bu may yardım:
Clip.loop() kendi iplik olduğunu başlar, ancak bu parçacığı JVM canlı tutmak olmaz. Bu yüzden çalışmasını sağlamak için klibin tek iş parçacığı olmadığından emin olun.
Bu snippet'ten Thread.sleep (..) 'i dışarı çıkarırsam, siz de aynı sorunu alırım;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class Snippet {
public static void main(String[] args) throws Exception {
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File("notify.wav"));
Clip clip = AudioSystem.getClip();
clip.open(inputStream);
clip.loop(Clip.LOOP_CONTINUOUSLY);
Thread.sleep(10000); // looping as long as this thread is alive
}
}
open() 'den once loop() yapmayı denediniz mi? Denemedim ama işe yarayabilir. –
Sadece burada denedim ve işe yarıyor gibi görünüyor ... try bloğundaki herhangi bir istisnayı yakalayan bu kodun akması gerekiyor mu? – Timst
Merhaba, bunu denedim ve işe yarıyor. İlk döngüden sonra bir istisna var mı? – hudi