为什么我的java 程序播放不了音乐 30

importjava.awt.*;importjava.applet.Applet;importjava.applet.AudioClip;publicclassApp1... import java.awt.*;
import java.applet.Applet;
import java.applet.AudioClip;
public class App15_3 extends Applet{
Image img;
public void init(){
img=getImage(getCodeBase(),"陈乔恩.jpg");
}
public void paint(Graphics g){
g.drawString("东方不败——陈乔恩",50,15);
g.drawImage(img,30,30,200,200,this);
AudioClip midi;
midi=getAudioClip(getCodeBase(),"1.mp3");
midi.play();
}
}

文件不放在一起啊 为什么播放不了啊
展开
 我来答
vaccumlike
2014-09-15
知道答主
回答量:23
采纳率:0%
帮助的人:5.1万
展开全部
getCodeBase();获取的路径找不到,你打个断点可以看到。你把文件放到bin目录下面就可以了。
追问
那为什么图片能显示
爱吃溜肥肠
2014-09-15 · TA获得超过627个赞
知道小有建树答主
回答量:326
采纳率:50%
帮助的人:219万
展开全部
public class AudioUtil {
public static void main(String[] args) {
// Test.Play1("F:\\gengjie\\system.wav");

AudioUtil.Play3();

}

// 播放音频文件
public static void Play1(String fileurl) {
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(new File(
fileurl));
AudioFormat aif = ais.getFormat();
SourceDataLine sdl = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, aif);
sdl = (SourceDataLine) AudioSystem.getLine(info);
sdl.open(aif);
sdl.start();
int nByte = 0;
byte[] buffer = new byte[1024 * 10];
while (nByte != -1) {
nByte = ais.read(buffer, 0, 1024 * 10);
if (nByte >= 0) {
sdl.write(buffer, 0, nByte);
}
}
sdl.stop();
} catch (Exception e) {
}
}



public static void Play3() {
// 1.定义一个文件对象引用,指向名为filename那个文件
// File sourceFile = new File("F://gengjie//system.wav");
File sourceFile = new File(BusinessUtil.SYSTEM_PATH+"/msg.wav");
// File sourceFile = new File("src/system.wav");
// 定义一个AudioInputStream用于接收输入的音频数据
AudioInputStream audioInputStream = null;
// 使用AudioSystem来获取音频的音频输入流
try {
audioInputStream = AudioSystem.getAudioInputStream(sourceFile);
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 4,用AudioFormat来获取AudioInputStream的格式
AudioFormat format = audioInputStream.getFormat();
// 5.源数据行SoureDataLine是可以写入数据的数据行
SourceDataLine auline = null;
// 获取受数据行支持的音频格式DataLine.info
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);

// 获得与指定info类型相匹配的行
try {
auline = (SourceDataLine) AudioSystem.getLine(info);
// 打开具有指定格式的行,这样可使行获得所有所需系统资源并变得可操作
auline.open();
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 允许某一个数据行执行数据i/o
auline.start();

// 写出数据
int nBytesRead = 0;
byte[] abData = new byte[2];
// 从音频流读取指定的最大数量的数据字节,并将其放入给定的字节数组中。
try {
while (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData.length);
// 通过此源数据行将数据写入混频器
if (nBytesRead >= 0)
auline.write(abData, 0, nBytesRead);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
auline.drain();
auline.close();
}

}

}

请看main方法里对音频文件播放测试,可以正常播放音频文件;如有用,请采纳

追问
我靠 你自己测试吧  我要的是 我程序 为什么 出错的原因   懂吗?????????/
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式