2013年2月26日火曜日

JavaでMP3を再生(2013/02/26修正)

http://akis-i.blogspot.jp/2012/09/javamp3.html
のソースコードの修正です。

以下修正内容
・変数名が気持ち悪い
・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 件のコメント:

コメントを投稿