Я вставил фоновый звук в свою программу, используя AudioInputStream
.AudioInputStream() не останавливается
Когда я нажимаю On
, воспроизводится фоновое аудио, и Off
перестанет воспроизводить фоновый звук.
Вот часть моего кода для аудио воспроизведения части:
public void playSound(int i)
{
try
{
. //Others buttons sound
. //Others buttons sound
if(i == 3 || i == 4)
{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("Background.wav"));
Clip clip3 = AudioSystem.getClip();
clip3.open(audioInputStream);
if(i == 3)
{
clip3.loop(Clip.LOOP_CONTINUOUSLY);
clip3.start();
settingSubMenuItem3.setEnabled(false);
settingSubMenuItem4.setEnabled(true);
}
if(i == 4)
{
clip3.stop();
settingSubMenuItem3.setEnabled(true);
settingSubMenuItem4.setEnabled(false);
}
}
catch(Exception e)
{
System.out.println("Error with playing sound.");
e.printStackTrace();
}
}
А вот ButtonListener
часть:
private class MenuItemListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == settingSubMenuItem3)
{
playSound(3);
}
if(e.getSource() == settingSubMenuItem4)
{
playSound(4);
}
}
}
Мой код может воспроизводить звук при нажатии On
кнопку, но когда я нажимаю кнопку Off
, она не работает.
Во время компиляции и запуска нет ошибки.
Какая ошибка в моем коде?
Хорошо, я попробую. Могу ли я узнать, в чем разница между '.isActive()' и '.isRunning()'? – Chin
@ AnnonyNewbie: Я не знаю разницы, если честно, поскольку я никогда не использовал Java Audio. Сожалею. –
Тогда о проблеме моего кода, поэтому я должен объявить метод вроде 'setAudio()' и 'getAudio'? – Chin