这段代码有点底层,但是可以正常工作:
byte[] buffer = new byte[4096]; for (File file : files) { try { AudioInputStream is = AudioSystem.getAudioInputStream(file); AudioFormat format = is.getFormat(); SourceDataLine line = AudioSystem.getSourceDataLine(format); line.open(format); line.start(); while (is.available() > 0) { int len = is.read(buffer); line.write(buffer, 0, len); } line.drain(); //**[DEIT]** wait for the buffer to empty before closing the line line.close(); } catch (Exception e) { e.printStackTrace(); } }
基本上,您打开一个AudioInputStream,读取数据并将其写入SourceDataLine。
write方法被阻止,因此它将播放文件。
您可以尝试将其
Clip用于相同目的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)