简单讲述java如何实现播放器功能。
java音频播放器备份,支持wav,mp3
都是摘抄于网络,wav播放,mp3播放
播放wav版本
package com;
import javax.sound.sampled.*;
import java.io.File;
/*
wav播放器,不支持mp3
*/
public class AePlayWave extends Thread {
private String name;
public AePlayWave(String name) {
this.name = name;
}
@Override
public void run() {
File file = new File(name);
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(file);
} catch (Exception e) {
e.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[] abbytes = new byte[512];
try {
while ((nBytesRead = audioInputStream.read(abbytes, 0, abbytes.length)) != -1) {
if (nBytesRead >= 0) {
auline.write(abbytes, 0, nBytesRead);
}
}
} catch (Exception e) {
e.printStackTrace();
return;
} finally {
auline.drain();
auline.close();
}
}
}
MP3播放
package com;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/*
mp3播放器
*/
public class AudioPlayer extends Thread {
Player player;
File music;
//构造方法
public AudioPlayer(String fileName) {
this.music = new File(fileName);
}
//重写run方法
@Override
public void run() {
super.run();
try {
play();
} catch (FileNotFoundException | JavaLayerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//播放方法
public void play() throws FileNotFoundException, JavaLayerException {
BufferedInputStream buffer =
new BufferedInputStream(new FileInputStream(music));
player = new Player(buffer);
player.play();
}
}