のソースコードの修正です。
以下修正内容
・変数名が気持ち悪い
・BufferedInputStreamをつかいシークを実装しようと思えばできるようにした。
問題点&いつか直す
・メソッドがきもい
・音量の調節ができない
・メモ帳でいじったからもしかしたらバグがあるかも・・・
・修正とかいっときながら雑
・変数の使い捨て前提
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.net.URL;
import javazoom.jl.player.Player;
import frame.compornent.PlayerCompornent;
public class MP3Player extends Thread {
// variable
private Player player;
private BufferedInputStream stream;
private boolean run;
private long filesize;
public MP3Player() {
}
public void setFile(String file) {
try {
stream = new BufferedInputStream((new FileInputStream(file)));
player = new Player(stream);
} catch (Exception e) {
}
}
public void setFile(URL url) {
try {
filesize = url.openConnection().getContentLength();//ファイルサイズ取得
stream = new BufferedInputStream((url.openStream()));
player = new Player(stream);
} catch (Exception e) {
}
}
public void start() {
run = true;
super.start();
}
public void stopMusic() {
try {
if (player != null) {
player.close();
}
if (stream != null) {
stream.close();
}
} catch (Exception e) {
System.out.println("IOException");
} finally {
setStopper();
}
}
public void setStopper() {
player = null;
stream = null;
run = false;
}
public void run() {
if (stream == null || player == null || !run) {
stopMusic();
} else {
try {
player.play();
} catch (Exception e) {
System.out.println("JavaLayerException");
} finally {
stopMusic();
}
}
}
public boolean isRun() {
return run;
}
public BufferedInputStream getStream() {
return stream;
}
public long getFilesize() {
return filesize;
}
}
}
a
0 件のコメント:
コメントを投稿