在Applet中同时播放两首wav歌曲的内存不足问题
//试了好久,就是不能同时播放两首歌,一直内存不足,我注释掉了其中的一首,求能同时播放两首歌的改动方法...
package mt;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
@SuppressWarnings("serial")
public class Sounds extends Applet implements ActionListener
{
//String onceFile="file:/F:/the sun also rises.wav";
String loopFile="file:/F:/The Dawn.wav";
//AudioClip onceClip;
AudioClip loopClip;
//Button playOnce;
//Button stopOnce;
Button startLoop;
Button stopLoop;
boolean looping=false;
boolean playing=false;
public void init()
{
try
{
//onceClip=getAudioClip(new URL(onceFile));
loopClip=getAudioClip(new URL(loopFile));
}catch(MalformedURLException e){}
/*playOnce=new Button("Play one");
stopOnce=new Button("Stop one");
stopOnce.setEnabled(false);
playOnce.addActionListener(this);
add(playOnce);
stopOnce.addActionListener(this);
add(stopOnce);*/
startLoop=new Button("Play two");
stopLoop=new Button("Stop two");
stopLoop.setEnabled(false);
startLoop.addActionListener(this);
add(startLoop);
stopLoop.addActionListener(this);
add(stopLoop);
}
public void stop()
{
if(playing)
{
//onceClip.stop();
}
if(looping)
{
loopClip.stop();
}
}
public void start()
{
if(playing)
{
//onceClip.play();
}
if(looping)
{
loopClip.play();
}
}
public void actionPerformed(ActionEvent event)
{
Object source=event.getSource();
/*if(source==playOnce)
{
if(onceClip!=null)
{
playing=true;
onceClip.loop();
stopOnce.setEnabled(true);
playOnce.setEnabled(false);
showStatus("Playing sound"+onceFile+".");
}
else
{
showStatus("Sound"+onceFile+"not loaded yet.");
}
return;
}
if(source==stopOnce)
{
if(playing)
{
playing=false;
onceClip.stop();
playOnce.setEnabled(true);
stopOnce.setEnabled(false);
}
showStatus("Stopped playing sound"+onceFile+".");
return;
}*/
if(source==startLoop)
{
if(loopClip!=null)
{
looping=true;
loopClip.loop();
stopLoop.setEnabled(true);
startLoop.setEnabled(false);
showStatus("Playing sound"+loopFile+"sontinuously.");
}
else
{
showStatus("Sound"+loopFile+"not loaded yet.");
}
return;
}
if(source==stopLoop)
{
if(looping)
{
looping=false;
loopClip.stop();
startLoop.setEnabled(true);
stopLoop.setEnabled(false);
}
showStatus("Stopped playing sound"+loopFile+".");
return;
}
}
}