import javax.swing.*;
import java.applet.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class LoadAudioAndPlay extends JApplet{
AudioClip sound1,sound2,currentsound;
JButton playsound,loopsound,stopsound;
JComboBox choosesound;
URL url1,url2;
String name[]={"Welcome","hi"};
public void init(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
choosesound=new JComboBox(name);
try{
sound1=Applet.newAudioClip(getClass().getResource("w.wav"));
sound2=Applet.newAudioClip(getClass().getResource("y.wav"));
}catch(Exception e){
e.printStackTrace();}
currentsound=sound1;
choosesound.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
currentsound.stop();
currentsound=choosesound.getSelectedIndex()==0 ?
sound1 : sound2;
}
});
c.add(choosesound);
playsound=new JButton("Paly");
c.add(playsound);
loopsound=new JButton("Loop");
c.add(loopsound);
stopsound=new JButton("Stop");
c.add(stopsound);
ButtonActionHandler handler=new ButtonActionHandler();
playsound.addActionListener(handler);
loopsound.addActionListener(handler);
stopsound.addActionListener(handler);
}
private class ButtonActionHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==playsound)
currentsound.play();
if(e.getSource()==loopsound)
currentsound.loop();
if(e.getSource()==stopsound)
currentsound.stop();
}
}
public static void main(String[] args){
LoadAudioAndPlay m=new LoadAudioAndPlay();
JFrame app=new JFrame("AudioAndPlay Test");
m.init();
m.start();
app.getContentPane().add(m);
app.setBounds(100,100,400,100);
app.setVisible(true);
}
}
请大家帮忙指教一下这是什么原因 谢谢!万分感激!!
----------------解决方案--------------------------------------------------------
OutofmemoryError,看起来是你的JAVA虚拟机可用的内存太小,而两个音乐文件太大.
----------------解决方案--------------------------------------------------------
那我应该怎么办?初学什么也不懂请您指教下 只是WAV格式和AU 格式的文件都很大 谢谢您的指教!!
----------------解决方案--------------------------------------------------------
试一下运行的时候用:
java -Xmx128M YourProgramName
----------------解决方案--------------------------------------------------------
另外,你的电脑内存多大?两个音乐文件多大?
----------------解决方案--------------------------------------------------------
试一下运行的时候用:
java -Xmx128M YourProgramName
您这句话我不明白,您能不能仔细说一下,谢谢!我电脑内存512M 两个文件共80多M
----------------解决方案--------------------------------------------------------
java -Xmx128M 程序名
指明虚拟机运行时最大的可用堆内存为128M,
如果还有异常抛出,可以把128M改的更大一点.
----------------解决方案--------------------------------------------------------
非常感谢您的指教 现在能没有那个异常了,就是那音乐声音断断续续的,我设置了256M 还有我要是用编译器能设置吗?我每次想运行程序都要设置?我刚开始学有很多不懂,希望您受累指教一下!!!谢谢 万分感激!!
----------------解决方案--------------------------------------------------------
编译好像没有设置的.
可能可以通过修改JVM的配置文件达到你的要求,不过这点我也不是很清楚.
----------------解决方案--------------------------------------------------------
谢谢您的指教!非常感激!!
----------------解决方案--------------------------------------------------------