response.setHeader("Content-Type", "audio/mpeg");
byte[] buf = new byte[2048];
int len_l;
while (iter.hasNext()) {
Object[] obj = iter.next();
if (obj[0] instanceof File) {
for (int i = 0; i < obj.length; i++) {
File file = (File) obj[i];
File fileWav = new File(dir+file.getName());
FileInputStream fis = new FileInputStream(fileWav);
OutputStream out = response.getOutputStream();
len_l = fis.read(buf);
while (len_l != -1) {
out.write(buf, 0, len_l);
len_l = fis.read(buf);
}
out.flush();
out.close();
fis.close();
// System.out.println(file.getName() + " ");
//
// listArr.add(file.getName());
}
}
}
一个response只能输出一个文件。
Java播放音乐的时候必须加载一个播放一个,不可以同时加载完以后一起播放。
这段代码跟播放有啥关系
public class BackgroundMusic implements Runnable{
@Override
public void run() {
AudioClip[] music=new AudioClip[5];
File[] musicList=new File[]{new File("music/1.wav"),new File("music/2.wav"),new File("music/3.wav"),new File("music/4.wav"),new File("music/5.wav")};
for(int i=0;i<5;i++){
try {
music[i]=Applet.newAudioClip(musicList[i].toURI().toURL());
} catch (MalformedURLException ex) {
Logger.getLogger(ChessMenuBar.class.getName()).log(Level.SEVERE,
null,ex);
}
music[i].play();
}
}
}
你都在循环里定义了变量,当然只有一个值,将你要的变量定义在循环外。
一个response只能输出一个文件。请知悉!