JAVA用main方法无法运行程序播放音频 5

我用的编译软件是eclipse用applet运行的时候可以运行,但是选中歌曲点击播放的时候没有声音。。Exceptioninthread"main"java.lang.N... 我用的编译软件是eclipse
用applet运行的时候可以运行,但是选中歌曲点击播放的时候没有声音。。
Exception in thread "main" java.lang.NullPointerException
at java.applet.Applet.getCodeBase(Unknown Source)
at test3.AudioDemo2.pr(AudioDemo2.java:24)
at test3.AudioDemo2.main(AudioDemo2.java:90)
这是用应用程序方式点击运行的时候提示的错误,文件也放到项目文件那里了...
实在搞不懂哪里错了。。代码在下面。。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class AudioDemo extends JApplet{
private String[] audioFile={"LastButterFly.au","innocence.au","海阔天空.wav"}; //三个文件的名字
private JComboBox combFilename=new JComboBox(audioFile);
private String dirStr="multimedia/"; //文件所在的文件夹
private AudioClip[] audios;
private AudioClip audioPlay;
private JButton playButton,loopButton,stopButton;

public void init(){
audios = new AudioClip[audioFile.length];
for(int i=0;i<audios.length;i++){
audios[i]=getAudioClip(getCodeBase(),dirStr+audioFile[i]); //错在这个地方
}
audioPlay =audios[0];
combFilename.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
JComboBox cb=(JComboBox)e.getSource();
int i=cb.getSelectedIndex();
audioPlay=audios[i];
}
});
playButton = new JButton("播放");
playButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
audioPlay.play();
stopButton.setEnabled(true);
combFilename.setEnabled(false);
playButton.setEnabled(false);
loopButton.setEnabled(false);
}
});
loopButton = new JButton("循环");
loopButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
audioPlay.loop();
loopButton.setEnabled(false);
stopButton.setEnabled(true);
combFilename.setEnabled(false);
playButton.setEnabled(false);
}
});
stopButton = new JButton("停止");
stopButton.setEnabled(false);
stopButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
audioPlay.stop();
loopButton.setEnabled(true);
combFilename.setEnabled(true);
playButton.setEnabled(true);
}
});
JPanel controlPanel=new JPanel();
controlPanel.add(combFilename);
controlPanel.add(playButton);
controlPanel.add(loopButton);
controlPanel.add(stopButton);
setLayout(new BorderLayout());
add(controlPanel,BorderLayout.CENTER);
}
public void stop(){
audioPlay.stop();
}
}
展开
 我来答
匿名用户
2015-11-30
展开全部
audios[i]=getAudioClip(getCodeBase(),dirStr+audioFile[i]); 当中,getCodeBase()这是APPLET专有的方法

换Application要另外实现这个的方法
追问
就算这样。。但是用Applet运行的时候也无法读取音频文件来播放。。这个怎么办?
追答
音频文件,.class放所有的目录的dirStr对应的目录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式