diff options
Diffstat (limited to 'source/client/swing/Player.java')
| -rw-r--r-- | source/client/swing/Player.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/source/client/swing/Player.java b/source/client/swing/Player.java new file mode 100644 index 0000000..7783544 --- /dev/null +++ b/source/client/swing/Player.java @@ -0,0 +1,59 @@ +package itunes.client.swing; +import java.io.FileInputStream; +import java.io.InputStream; +import javax.swing.JOptionPane; + +import itunes.client.swing.ZPlayer; +public class Player extends Thread { + private javazoom.jl.player.Player p; + private ZPlayer prog; + + public Player(ZPlayer prog, String fileName) { + this.prog = prog; + FileInputStream f=null; + try { + f = new FileInputStream(fileName); + } catch (Exception e) { + e.printStackTrace(); + } + newPlayer(f); + } + + private void newPlayer(InputStream f) { + if (p != null) + this.stopMusic(); + try{ + p = new javazoom.jl.player.Player(f); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public Player(ZPlayer prog, InputStream f) { + this.prog = prog; + newPlayer(f); + } + + public void run() { + try { + p.play(); + } catch (javazoom.jl.decoder.BitstreamException be) { + JOptionPane.showMessageDialog(prog.frame,"Unsupported file format!\n"+be.getLocalizedMessage()); + prog.stopPlaying(); + }catch (Exception e) { + e.printStackTrace(); + prog.stopPlaying(); + } + if (p.isComplete()) { + prog.playNext(1); + } + } + + public int getPosition() { + return p.getPosition(); + } + + public void stopMusic() { + p.close(); + } +} |
