2 q452316q q452316q 于 2015.06.25 08:28 提问

求救,打包后音乐没声音了,应该怎么改
class Sound
{ 
   FileInputStream file;
   BufferedInputStream buf;
   public Sound()
{
try 
{ 
   file=new FileInputStream("./src/music/001.mid");
   buf=new BufferedInputStream(file);
   AudioStream audio=new AudioStream(buf);
   AudioPlayer.player.start(audio);
}
catch (Exception e) {}
}
}

button下的是这个Sound play = new Sound();未打包前是可以正常播放的,打包后就不能了,mid文件有打包进去jar的

求大神解答,应该是用相对途径吧,但就是不懂怎样改

图片说明
代码结构图

3个回答

tongyi55555
tongyi55555   2015.06.25 10:43
已采纳

改成这个试试。

String musicPath = "001/flourish.mid";
            InputStream input = this.getClass().getResourceAsStream(musicPath);
            buf = new BufferedInputStream(input);
tongyi55555
tongyi55555 回复q452316q: 嗯,路径我写的是我自己的,记得采纳。
2 年多之前 回复
q452316q
q452316q 谢啦
2 年多之前 回复
q452316q
q452316q 按照你的改,然后再把途径改music/001.mid成功了
2 年多之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.06.25 09:02

嗯,路径不对了。
http://www.cnblogs.com/leehongee/p/3324062.html
http://bbs.csdn.net/topics/340003126
看看你是web项目还是app项目吧

q452316q
q452316q 回复danielinbiti: 按照楼下的改ok了~也谢谢你啦
2 年多之前 回复
danielinbiti
danielinbiti 回复q452316q: 打包后没有src路径了吧,你先看打包后你的目录结构。上面的是web的,cs结构的看这篇,http://www.2cto.com/kf/201110/107616.html
2 年多之前 回复
q452316q
q452316q 是桌面swing项目,这两个链接都看了,试了几个都不行.........
2 年多之前 回复
tongyi55555
tongyi55555   2015.06.25 09:17

贴一下你的代码结构图?或者自己在file下面输出下file的路径调试下。

q452316q
q452316q 回复那一抹代码: 有打包进去的,我测试了一下,它读取的是jar包所在的目录为当前跟目录
2 年多之前 回复
tongyi55555
tongyi55555 回复q452316q: 看一下你打包出来的jar内部目录结构。另外你在测试时不要将音频文件放到src目录下,打包的时候根本就不会新建src目录,这是系统自带的。
2 年多之前 回复
q452316q
q452316q 贴了,你看一下
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片