java音乐播放之IO流处理

来源:互联网 发布:淘宝客贷怎么才能贷款 编辑:程序博客网 时间:2024/06/01 07:34

这个类只能一直播放,知道音乐结束。

比AudioCilp要好一点。

import java.io.*;import javax.sound.sampled.*;public class Test {public static void main(String[] args) {AePlayWave apw=new AePlayWave("./111.wav");apw.start();}}//播放声音的类class AePlayWave extends Thread {private String filename;public AePlayWave(String wavfile) {filename = wavfile;}public void run() {File soundFile = new File(filename);AudioInputStream audioInputStream = null;try {audioInputStream = AudioSystem.getAudioInputStream(soundFile);} catch (Exception e1) {e1.printStackTrace();return;}AudioFormat format = audioInputStream.getFormat();SourceDataLine auline = null;DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);try {auline = (SourceDataLine) AudioSystem.getLine(info);auline.open(format);} catch (Exception e) {e.printStackTrace();return;}auline.start();int nBytesRead = 0;byte[] abData = new byte[512];try {while (nBytesRead != -1) {nBytesRead = audioInputStream.read(abData, 0, abData.length);if (nBytesRead >= 0)auline.write(abData, 0, nBytesRead);}} catch (IOException e) {e.printStackTrace();return;} finally {auline.drain();auline.close();}}}










0 0
原创粉丝点击