Как сделать повторное воспроизведение аудио?
Пытаюсь сделать так, чтобы аудиофайл проигрывался вновь после завершения.
Библиотеки, которые я использую:
import sun.audio.AudioPlayer;
import sun.audio.AudioStream;
import javax.swing.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
Я использую цикл while, булеву переменную и sleep():
boolean play = true;
while(play) {
playMusic("C:\\Users\\Ученик\\IdeaProjects\\Game\\src\\com\\company\\audio\\skeleton.wav");
Thread.sleep(10);
}
Вот функция:
public static void playMusic(String filepath) {
String reset = "\u001B[0m";
String red = "\u001B[31m";
//->
InputStream music;
try {
music = new FileInputStream(new File(filepath));
AudioStream audios = new AudioStream(music);
boolean game = true;
while(true)
AudioPlayer.player.start(audios);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error. Can't find an audiofile skeleton.wav");
System.out.println(red + "Error. Can't find an audiofile skeleton.wav" + reset);
}
}
После завершения аудио наступает тишина. Аудио не проигрывается повторно через 10 миллисекунд.. Почему? Как сделать повторное воспроизведение аудио?
Ответы (1 шт):
Автор решения: web developer
→ Ссылка
Не используйте sun.*пакеты, это частные пакеты и не всегда могут быть доступны. Взгляните на этот пример , чтобы узнать, как воспроизвести аудиоклип. Взгляните на ClipиClip#loop Как очень простой пример...
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(...);
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.start();