Java中AudioFileStream_java-播放AudioInputStream时出错

我想创建2个JMenuItem,它可以启动和停止背景音频.

这是我的代码:

public class MainClass extends JFrame

{

private AudioInputStream audioInputStream;

private Clip clip;

public MainClass(String title)

{

try

{

audioInputStream = AudioSystem.getAudioInputStream(new File("Background.wav"));

clip = AudioSystem.getClip();

clip.loop(Clip.LOOP_CONTINUOUSLY);

clip.open(audioInputStream);

}

catch(Exception e)

{

System.out.println("Error with playing sound.");

e.printStackTrace();

}

}

public void startSound()

{

clip3.start();

settingSubMenuItem1.setEnabled(false);

settingSubMenuItem2.setEnabled(true);

}

public void stopSound()

{

clip3.stop();

settingSubMenuItem1.setEnabled(true);

settingSubMenuItem2.setEnabled(false);

}

private class MenuItemListener implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

if(e.getSource() == settingSubMenuItem1)

{

startSound();

}

if(e.getSource() == settingSubMenuItem2)

{

stopSound();

}

}

}

}

当我单击settingSubMenuItem1时,它工作正常,可以播放音频.

但是,当我单击settingSubMenuItem2时,会出现错误,如果再次单击settingSubMenuItem1,将不会再有声音.

这是错误:

Error with playing sound.

java.lang.IllegalStateException: Clip is already open with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian and frame lengh of 7658

我的程序有什么错误?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值