当前位置: 代码迷 >> Java相关 >> 求教Applet.newAudioClip()异常问题
  详细解决方案

求教Applet.newAudioClip()异常问题

热度:220   发布时间:2007-03-28 22:22:10.0
求教Applet.newAudioClip()异常问题

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);
}
}


请大家帮忙指教一下这是什么原因 谢谢!万分感激!!
搜索更多相关的解决方案: Applet  import  newAudioClip  java  awt  

----------------解决方案--------------------------------------------------------
OutofmemoryError,看起来是你的JAVA虚拟机可用的内存太小,而两个音乐文件太大.
----------------解决方案--------------------------------------------------------
那我应该怎么办?初学什么也不懂请您指教下 只是WAV格式和AU 格式的文件都很大 谢谢您的指教!!
----------------解决方案--------------------------------------------------------
试一下运行的时候用:
java -Xmx128M YourProgramName
----------------解决方案--------------------------------------------------------
另外,你的电脑内存多大?两个音乐文件多大?
----------------解决方案--------------------------------------------------------
以下是引用Eastsun在2007-3-28 22:36:50的发言:
试一下运行的时候用:
java -Xmx128M YourProgramName

您这句话我不明白,您能不能仔细说一下,谢谢!我电脑内存512M 两个文件共80多M


----------------解决方案--------------------------------------------------------

java -Xmx128M 程序名
指明虚拟机运行时最大的可用堆内存为128M,
如果还有异常抛出,可以把128M改的更大一点.


----------------解决方案--------------------------------------------------------
非常感谢您的指教 现在能没有那个异常了,就是那音乐声音断断续续的,我设置了256M 还有我要是用编译器能设置吗?我每次想运行程序都要设置?我刚开始学有很多不懂,希望您受累指教一下!!!谢谢 万分感激!!
----------------解决方案--------------------------------------------------------
编译好像没有设置的.
可能可以通过修改JVM的配置文件达到你的要求,不过这点我也不是很清楚.
----------------解决方案--------------------------------------------------------
谢谢您的指教!非常感激!!
----------------解决方案--------------------------------------------------------