Hi Leute, ich hab ein Problem bei meinem "MP3Player".
Ich hab den Player jetzt soweit, das ich eine Datei auswählen kann und sie mit dem PlayButton starten kann, anschließen kann ich sie mit dem StopButton wieder stoppen.
Mein Problem ist das ich den PlayButton nur einmal verwenden kann.... Also wenn ich schon eine Datei abgespielt habe muss ich den Player wieder neu starten damit ich den Button wieder verwenden kann um ein neues Lied abzuspielen.
Wäre nett wenn mir jemand helfen kann, hier ist der Quellcode:
[highlight=Java]
import java.io.*;
import javax.swing.*;
import javax.swing.JFileChooser;
import javax.swing.event.*;
import java.awt.*;
import java.util.ArrayList;
import java.awt.event.*;
import javazoom.jl.player.advanced.*;
import javazoom.jl.decoder.*;
public class ProjektNeu extends JFrame{
JButton dir = new JButton("Durchsuchen");
JButton play = new JButton("Play");
JButton stop = new JButton("Stop");
JLabel statusbar = new JLabel("Auswahl anzeige");
String dateipfad;
startThread demoThread;
boolean running = true;
AdvancedPlayer p;
ProjektNeu(){
super("Projekt");
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Lauscher l = new Lauscher();
demoThread = new startThread();
Container c = getContentPane();
c.setLayout(new FlowLayout());
dir.addActionListener(l);
play.addActionListener(l);
stop.addActionListener(l);
c.add(dir);
c.add(play);
c.add(stop);
c.add(statusbar);
}
class Lauscher implements ActionListener{
public void actionPerformed(ActionEvent ae){
String aktion = ae.getActionCommand();
if(aktion.equals("Durchsuchen")){
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int option = chooser.showOpenDialog(ProjektNeu.this);
if(option == JFileChooser.APPROVE_OPTION){
statusbar.setText("Sie haben dieser Verzeichnis geöffnet: " +((chooser.getSelectedFile() !=null)?chooser.getSelectedFile().getAbsolutePath():"nothing"));
File pfad = chooser.getSelectedFile();
dateipfad = pfad.getAbsolutePath();
}
else{
statusbar.setText("Sie haben abgebrochen");
}
}
if(aktion.equals("Play")){
try{
running = true;
while(running){
demoThread.start();
}
}
catch(Exception e){
}
}
if(aktion.equals("Stop")){
running = false;
if(!running){
p.close();
}
}
}
}
class startThread extends Thread{
public void run(){
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
p.play();
}
catch(Exception e){
}
}
}
public static void main(String[] args) throws FileNotFoundException, JavaLayerException{
ProjektNeu pn = new ProjektNeu();
pn.setVisible(true);
pn.setLocation(300,300);
}
}
[/highlight]
Danke für eure Hilfe.
Mfg Chris!
Ich hab den Player jetzt soweit, das ich eine Datei auswählen kann und sie mit dem PlayButton starten kann, anschließen kann ich sie mit dem StopButton wieder stoppen.
Mein Problem ist das ich den PlayButton nur einmal verwenden kann.... Also wenn ich schon eine Datei abgespielt habe muss ich den Player wieder neu starten damit ich den Button wieder verwenden kann um ein neues Lied abzuspielen.
Wäre nett wenn mir jemand helfen kann, hier ist der Quellcode:
[highlight=Java]
import java.io.*;
import javax.swing.*;
import javax.swing.JFileChooser;
import javax.swing.event.*;
import java.awt.*;
import java.util.ArrayList;
import java.awt.event.*;
import javazoom.jl.player.advanced.*;
import javazoom.jl.decoder.*;
public class ProjektNeu extends JFrame{
JButton dir = new JButton("Durchsuchen");
JButton play = new JButton("Play");
JButton stop = new JButton("Stop");
JLabel statusbar = new JLabel("Auswahl anzeige");
String dateipfad;
startThread demoThread;
boolean running = true;
AdvancedPlayer p;
ProjektNeu(){
super("Projekt");
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Lauscher l = new Lauscher();
demoThread = new startThread();
Container c = getContentPane();
c.setLayout(new FlowLayout());
dir.addActionListener(l);
play.addActionListener(l);
stop.addActionListener(l);
c.add(dir);
c.add(play);
c.add(stop);
c.add(statusbar);
}
class Lauscher implements ActionListener{
public void actionPerformed(ActionEvent ae){
String aktion = ae.getActionCommand();
if(aktion.equals("Durchsuchen")){
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int option = chooser.showOpenDialog(ProjektNeu.this);
if(option == JFileChooser.APPROVE_OPTION){
statusbar.setText("Sie haben dieser Verzeichnis geöffnet: " +((chooser.getSelectedFile() !=null)?chooser.getSelectedFile().getAbsolutePath():"nothing"));
File pfad = chooser.getSelectedFile();
dateipfad = pfad.getAbsolutePath();
}
else{
statusbar.setText("Sie haben abgebrochen");
}
}
if(aktion.equals("Play")){
try{
running = true;
while(running){
demoThread.start();
}
}
catch(Exception e){
}
}
if(aktion.equals("Stop")){
running = false;
if(!running){
p.close();
}
}
}
}
class startThread extends Thread{
public void run(){
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
p.play();
}
catch(Exception e){
}
}
}
public static void main(String[] args) throws FileNotFoundException, JavaLayerException{
ProjektNeu pn = new ProjektNeu();
pn.setVisible(true);
pn.setLocation(300,300);
}
}
[/highlight]
Danke für eure Hilfe.
Mfg Chris!