mp3 player mit javazoom

Status
Nicht offen für weitere Antworten.

guggy

Mitglied
Hi Leute!
Ich habe folgendes Problem:
Ich habe einen Mp3 Player programmiert der super funktioniert.
So das Problem an der Sache ist der Mp3 Player funktioniert nur im Editor; wenn ich also ein selbständiges Programm daraus machen will, also eine jar Datei, funktionien genau die Funktionien nicht bei denen javazoom benötigt wird. Kann es sein das beim erzeugen der jar Datei die class Dateien von javazoom nicht mitverwendet werden? Also das sie sozusagen ausgelassen werden.
Ich würde mich enorm freuen wenn mir jemand helfen könnte!
mfg
 

Ebenius

Top Contributor
Ja das kann sein und ist in der Regel der Fall. Hängt natürlich im einzelnen davon ab, wie das JAR erzeugt wird.

Den Inhalt einer JAR-Datei kann man einfach prüfen, indem man auf der Kommandozeile
Code:
jar -tf meins.jar
... aufruft.

Ebenius
 

guggy

Mitglied
ja das ist mir klar und ich habe es schon geprüft.
Die class Dateien von javazoom sind nicht dabei, wie du schon gesagt hast!
Nun zu meiner Frage:
Wie binde ich diese Dateien trotzdem ein?
Ich erzeuge die jar Datei übrigens mit den Java Editor.
mfg
ps: Ich freue mich auf jede Antwort
 

guggy

Mitglied
Ich habe jetzt das versucht wie du es mir beschrieben hast, komm aber leider kein Stück weiter!!
Könntest du dir das mal anschauen??
Ich könnte dir ein einfaches Demo schicken und vielleicht schaffst du es ja?
mfg und dannke für die Antworten
 

Ebenius

Top Contributor
Versuch es doch bitte im Forum zu lösen! Wie sieht denn Dein JAR-Manifest aus? Und wo liegt die JAR-Datei die verknüpft werden muss auf der Festplatte?

Ebenius
 

guggy

Mitglied
Also ich habe jetzt beide mir vorgeschlagene Versionen versucht.
Ich habe alle Class Dateien von Javazoom in einen Ordner kopiert.
Die fertige jar Datei ist zwar größer aber das Resultat ist gleich geblieben. :(
Und das mit dem Manifest funktioniert leider auch nicht.
Könnte ich dir das nicht einfach mal schicken und du schaust dir das an, un wir lösen dann das problem im Forum?
Weil ich habe wirklich keine Idee mehr woran ich immer scheitere.
mfg
 
M

MiDniGG

Gast
Stell die Datei halt hier ein. Reicht ja deine "Demo"-Version ;)
 

Ebenius

Top Contributor
Gib mal auf der Kommandozeile in dem Verzeichnis wo Dein großes JAR liegt (also das mit den zusätzlich hineinkopierten .class-Dateien) ein:
Code:
jar -tf meinegroßedatei.jar
Und dann den gesamten Inhalt bitte (in CODE-Tags) posten.

Dasselbe auch mit Deinem Manifest, so wie ich oben schrieb. Dann kann man auch was sagen. Vorher nicht.

Ebenius
 

guggy

Mitglied
ok da bin ich jetzt nicht mitgekommen!!
Aber ich habe den Inhalt schon mehrfach geprüft.
Also entweder sind die Class Dateien überhaut nicht enthalten(in der Jar Datei), oder sie sind alle enthalten.
Aber auch wenn sie enthalten sind is das Resultat das selbe.
Ich würde mich freuen wenn sich das jemand von euch Experten mal anschauen könnte.
Ich habe ein Demo geschrieben das vom code her sehr simple ist.
Das Problem ist aber nicht das Programm den in der Konsole funktioniert es ja einwandfrei.
Nur nach dem erzeugen der Jar Datei funktionieren alle Funktionen die auf den ordner javazoom zugreifen nicht.
Ich bin selbst kein Anfänger mehr, aber dieses Problem habe ich selbst noch nie gehabt!
Glg und danke nochmal für eure raschen Antworten
 

guggy

Mitglied
In diesen Programm sind Methoden die ich verwende um mp3s abzuspielen.
Dies ist nur zum Vererben gedacht.
In meinen Demo greif ich auf son3 zurück.
Song3 greift aber auf javazoom zurück.
z.b
Java:
import javazoom.jl.player.Player;
dies ist aber keine Vererbung, sondern wird nur importiert und hier ensteht wahrscheinlich das Problem das ich habe.

Also song 3:

Java:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
import java.io.*;
import javazoom.jl.decoder.Bitstream;
import javazoom.jl.decoder.Header;

public class song3 
{
    private String filename;
    public Player player; 
    private Bitstream	bitstream ;
    public Header h;

    // constructor that takes the name of an MP3 file
    public song3(String filename) 
    {
        this.filename = filename;
    }
    
   //methoden
   public void close() { if (player != null) player.close(); }
   
   public int position(){return player.getPosition()/1000; }//gibt sekundenposition
   public boolean fertig(){return player.isComplete(); }//gibt true,wenn abgespielt
   
   public int getlensec()
   	{        File fil=new File(filename);
			 try{h = bitstream.readFrame();
   	            System.out.println("Samplefrequency = "+h.frequency());
   	            //System.out.println(h.sample_frequency());
   	    		}catch (Exception e) {}
   		 return (int)(h.total_ms((int)fil.length())/1000);
   	}
    // play the MP3 file to the sound card
    public void play() 
    {
        try {
            FileInputStream fis     = new FileInputStream(filename);
            BufferedInputStream bis = new BufferedInputStream(fis);
            player = new Player(bis);
            bitstream = new Bitstream(bis);
            }
        catch (Exception e) {
            System.out.println("Problem playing file " + filename);
            System.out.println(e);
        }
      
        // run in new thread to play in background
        new Thread() {
            public void run() {
            	
            	try {player.play(); }
            	catch (Exception e) { System.out.println(e); }
            }
            
        }.start();
       
	}
}
 

guggy

Mitglied
Und hier noch das Demo:

Java:
public class songdemo
{
	public static void main (String args[])
	{
		song3 song = new song3("girlfun.mp3");
		song.play();

	}
}

Aber beim Demo liegt glaube ich nicht das Problem!
mfg
 
T

tuxedo

Gast
Doch, aber solange du Ebenius' Tipps ignorierst wird wohl nix draus. Du solltest also die Ärmel hochkrempeln und versuchen zu verstehen was man von dir möchte.
"Von nix kommt nix". Ein vermutlich altes, aber offenbar sinnergebendes Sprichwort.

- Alex
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben