Threadproblem mit mp3 player

Status
Nicht offen für weitere Antworten.

eddi

Mitglied
Moin.

Ich habe ein Problem mit meiner GUI und mit meinem mp3-Player. Dieses Problem läßt sich mit nem Thread lösen. Leider weiss ich nicht genau wie ich das realisieren kann.
Wenn die GUI gestartet wird und ich eine mp3- Datei laufen lassen will dann nimmt die GUI keine Befehle mehr an.
Dieses Problem will ich mit einem Thread lösen, so das beide Programmfragmente gleichzeitig laufen können.

Die Klasse mit der Thread realisierung:

public class PlayerThread extends Mp3Player implements Runnable{

Code:
 public class PlayerThread extends Mp3Player implements Runnable{

	Thread t; 
	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	public void run() {
		t = new Thread();
		Mp3Player player = new Mp3Player();
		try {
			player.play();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (JavaLayerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}

Teil der GUI mit der main methode:

Code:
if (e.getSource().equals(playBut)) {
			PlayerThread pt = new PlayerThread();
			player = new Mp3Player();
			try {
				((MP3File) list.get(jl.getSelectedIndex())).getFilename();
				player.play();
			} catch (FileNotFoundException e1) {
				bar.setText(0, "The mp3 File wasn't found");
			} catch (JavaLayerException e1) {
				bar.setText(0,
						"Player occured an Error while playing the mp3 file!");
			}

		}
		if (e.getSource().equals(stopBut)) {
			try {
				player.stopPlayback();
			} catch (FileNotFoundException e1) {
				bar.setText(0, "The mp3 File wasn't found");
			} catch (JavaLayerException e1) {
				bar.setText(0,
						"Player occured an Error while playing the mp3 file!");
			}
		}
	}


Ja, leider klappt mein Lösungsansatz nicht...und ich habe leider keine ahnung warum... :roll:
Ich danke für jede Art von Hilfe
 

hugo

Bekanntes Mitglied
Das kannst du dir wohl sparen. Weil dein Thread t macht ja gar nichts im Programm.
Code:
 t = new Thread();
Das folgende erzeugt noch nicht wirklich einen Thread:
Code:
PlayerThread pt = new PlayerThread();
Da musst du dann hinzufügen:
Code:
PlayerThread pt = new PlayerThread();
Thread t = new Thread(pt);
t.start();
Dann läuft dein PlayerThread auch wirklich als Thread.

Bei Galileo-Computing findest du eine gute Anleitung zu Threads.
 
G

Guest

Gast
Nein, leider funktioniert das auch nicht...

Code:
PlayerThread pt = new PlayerThread(); 
Thread t = new Thread(pt); 
t.start();

Der erkennt das pt in der parameterliste des Threads nicht also das hier: "PlayerThread(pt);"
Danke für die Hilfe ich guck auch mal in deinen Link vielleicht hilft mir das ja?! ;)
 

hugo

Bekanntes Mitglied
Also wenn du "PlayerThread(pt);" geschrieben hast, kann das auch nichts werden. Das muss heißen "Thread(pt);" Poste mal deine ganze Fehlermeldung.
 

eddi

Mitglied
Also mein code sieht nun wie folgt aus:


Code:
public class PlayerThread implements Runnable {

	private Statusbar bar;

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Runnable#run()
	 */
	public void run() {
		Mp3Player player = new Mp3Player();
			try {
				player.play();
			} catch (FileNotFoundException e1) {
				bar = new Statusbar(0);
				bar.setText(0, "File wasn't found!");
			} catch (JavaLayerException e) {
				bar.setText(0, "Player occured an error while playing!");
			
		}
	}
}


hier ein Ausschnitt der aktuellen GUI (mit main methode):



Code:
if (e.getSource().equals(playBut)) {
			tp = new PlayerThread();
			player = new Mp3Player();
			t = new Thread(tp);
			try {
				t.start();
				player.play();
				bar.setText(1, "playing mp3: "
						+ ((MP3File) list.get(jl.getSelectedIndex()))
								.getFilename());

			} catch (FileNotFoundException e1) {
				bar.setText(0, "The mp3 File wasn't found!");
			} catch (JavaLayerException e1) {
				bar.setText(0,
						"Player occured an Error while playing the mp3 file!");
			}
		}

Es gibt keinen Fehler, keine Exceptions, gar nix.... der Thread läßt einfach nur den Mp3-Player nicht nebenbei laufen... ich kann halt so bald ich auf play gedrückt habe nichts anderes mehr mit der GUI machen! :cry:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
felix92 MP3-Player ProgressBar Java Basics - Anfänger-Themen 29
C Musikstream mit Player aus Javazoom Java Basics - Anfänger-Themen 2
D mp3/wav Player programmieren Java Basics - Anfänger-Themen 3
B CD player Java Basics - Anfänger-Themen 8
G Pause-Funktion in einem mp3-Player Java Basics - Anfänger-Themen 2
H Playlist für JMF Player Java Basics - Anfänger-Themen 7
G Media Player: Failed to realize: com.sun.media.PlaybackEngine Java Basics - Anfänger-Themen 4
M Mp3 Player programmieren! Java Basics - Anfänger-Themen 1
G mini mp3 player Java Basics - Anfänger-Themen 4
R Collision with Player Java Basics - Anfänger-Themen 11
J media.Player Java Basics - Anfänger-Themen 5
M Mp3 Player mit Singleton Java Basics - Anfänger-Themen 8
D Problem mit JMF-Player Java Basics - Anfänger-Themen 17
A frage zu mp3-player mit jmf Java Basics - Anfänger-Themen 18
L getDuration() von einem javax.media.player objekt problem. Java Basics - Anfänger-Themen 3
5 newBoxLayout undefined for Player? obwohl eingebunden. Java Basics - Anfänger-Themen 7
P Java Look & Feel - Windows Media Player 11 Java Basics - Anfänger-Themen 5
F Media Player integrieren Java Basics - Anfänger-Themen 4
L MP3-Player mit Java Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben