帮我改改这个程序,为什么不能播放音乐,还有就是随便加一点东西使代码量超过一百行,这是我的作业啊,要交的,拜托了!import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.applet.*;
public class Gif extends Applet
{ myCanvas c1;
Frame f;
AudioClip sound;
Timer timer=new Timer();
public void init()
{
c1=new myCanvas();
f=new Frame();
f.setVisible(true);
f.setBounds(500,500,600,600);
f.setLayout(new CardLayout());
sound=getAudioClip(getCodeBase(),"6.mp3");
sound.play();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
c1.setSize(200,100);
c1.setBackground(Color.white);
f.add(c1,"");
timer.schedule(new MyTask(),100,100);
}
class myCanvas extends Canvas
{
Toolkit tk;
int i;
Image[] imgs=new Image[5];
myCanvas()
{
tk=getToolkit();
for(i=1;i<=5;i++)
imgs[i-1]=tk.getImage(i+".jpg");
}
public void paint(Graphics g)
{
if(i>4)
i=0;
g.drawImage(imgs[i++],200,200,200,100,this);
}
}
class MyTask extends java.util.TimerTask
{
public void run()
{
c1.repaint();
}
}
public static void main(String args[])
{
Gif t=new Gif();
t.init();
}
}
import java.awt.event.*;
import java.util.*;
import java.applet.*;
public class Gif extends Applet
{ myCanvas c1;
Frame f;
AudioClip sound;
Timer timer=new Timer();
public void init()
{
c1=new myCanvas();
f=new Frame();
f.setVisible(true);
f.setBounds(500,500,600,600);
f.setLayout(new CardLayout());
sound=getAudioClip(getCodeBase(),"6.mp3");
sound.play();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
c1.setSize(200,100);
c1.setBackground(Color.white);
f.add(c1,"");
timer.schedule(new MyTask(),100,100);
}
class myCanvas extends Canvas
{
Toolkit tk;
int i;
Image[] imgs=new Image[5];
myCanvas()
{
tk=getToolkit();
for(i=1;i<=5;i++)
imgs[i-1]=tk.getImage(i+".jpg");
}
public void paint(Graphics g)
{
if(i>4)
i=0;
g.drawImage(imgs[i++],200,200,200,100,this);
}
}
class MyTask extends java.util.TimerTask
{
public void run()
{
c1.repaint();
}
}
public static void main(String args[])
{
Gif t=new Gif();
t.init();
}
}
看看这个怎么样?
wav, aiff, midi, rmf
exception in thread "main" java.lang.nullpointerException
at java.applet.Applet.getCodeBase(Unknown Source)
是不是无法获取音乐的资源啊?
import java.awt.*;
import java.awt.event.*;
import java.net.*;import javax.swing.*;
import java.io.File;class AudioPlayDemo extends JFrame implements ActionListener {
boolean looping = false;
File file1 = new File("music\\明天会更好.wav");
AudioClip sound1;
AudioClip chosenClip; JButton playButton = new JButton("播放");
JButton loopButton = new JButton("循环播放");
JButton stopButton = new JButton("停止");
JLabel status = new JLabel("选择播放文件");
JPanel controlPanel = new JPanel();
Container container = getContentPane(); public AudioPlayDemo() {
try {
sound1 = Applet.newAudioClip(file1.toURL());
chosenClip = sound1;
} catch(OutOfMemoryError e){
System.out.println("内存溢出");
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
playButton.addActionListener(this);
loopButton.addActionListener(this);
stopButton.addActionListener(this);
stopButton.setEnabled(false); controlPanel.add(playButton);
controlPanel.add(loopButton);
controlPanel.add(stopButton); container.add(controlPanel, BorderLayout.CENTER);
container.add(status, BorderLayout.SOUTH); setSize(300, 130);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}public void actionPerformed(ActionEvent event) {
if (chosenClip == null) {
status.setText("声音未载入");
return;
}
Object source = event.getSource(); //获取用户洗涤激活的按钮 if (source == playButton) {
stopButton.setEnabled(true);
loopButton.setEnabled(true);
chosenClip.play();
status.setText("正在播放");
} if (source == loopButton) {
looping = true;
chosenClip.loop();
loopButton.setEnabled(false);
stopButton.setEnabled(true);
status.setText("正在循环播放");
}
if (source == stopButton) {
if (looping) {
looping = false;
chosenClip.stop();
loopButton.setEnabled(true);
} else {
chosenClip.stop();
}
stopButton.setEnabled(false);
status.setText("停止播放");
}
}
public static void main(String s[]) {
new AudioPlayDemo();
}
}