summaryrefslogtreecommitdiffstats
path: root/source/client/swing/Player.java
diff options
context:
space:
mode:
Diffstat (limited to 'source/client/swing/Player.java')
-rw-r--r--source/client/swing/Player.java59
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();
+ }
+}