Skip Mp3

Hallo,

ich hab einen Denkfehler aber weiß nicht wie ich es umgehen soll.

Mein SkipButton funktioniert nur bei einem Klick.
Wie kann ich ihm sagen, dass er mein Zufallszahl um eins erhöhen soll?

Java:
 private void btn_SkipActionPerformed(java.awt.event.ActionEvent evt) {
                mp3Player.pause();
                mp3Player.skip(playlist.getZufallsZahl(), playlist.getPanel1List().size());  
                mp3Player.play(playlist.getPanel1List().get(mp3Player.getTrackNo()));
    }

Java:
public void skip(int trackNo, int laengePlaylist) {
        actTrackNo = trackNo;
        if(actTrackNo < laengePlaylist -1 ){
            
            actTrackNo++;   
            
            
        }else{
            actTrackNo = 1;
            
        }
    }

Keine Fehlermeldung:

es wird einmal geskipt, dann wenn der Button nochmal gedrückt wird,spielt er das lied neu ab.
Ich weiß dass ich irgendwie meine Zufallszahl aktualisieren muss aber irgendwie hab ich eine Blockade.

Kann mir einer helfen
 

Kevin94

Top Contributor
Von einer Methode die getZufallsZahl() heist, würde ich erwarten, dass sie bei jedem Aufruf eine andere Zahl liefert. Warum nutzt du nicht einfach [JAPI]Random#nextInt()[/JAPI]?
 
Grad im Gegenteil. Mein getZufallszahl bleibt immer gleich.

Deshalb wird nur einmal geskippt, dann wird der TrackNO um +1 erhöht.

Wenn dann dann der Button Skip nochmal gedrückt wird, ist mein Zufallszahl ja immernoch gleich.
Wie kann ich diese um eins erhöhen, wenn jedes mal der Button geklickt wird.

Hab es mit einer extraVariable probiert.
int z = getZufallszahl() + 1; aber irgendwo hab ich immernoch ein Denkfehler
 

Kevin94

Top Contributor
Also normalerweise heist es, dass man Methoden/Variablen spechende und zutreffende Namen geben soll. Wenn eine Methode getZufallsZahl heist, und immer den selben Wert zurückgibt, dann ist entweder der Name oder die Implementierung falsch gewählt. Das selbe gilt für die skip Methode. Von so einer Methode, würde ich erwarten, dass sie immer zum nächsten/vorherigen Lied springt, sollte also eigentlich keine Parameter brauchen (höchsten in welche Richtung gesprungen wird oder um wieviele Lieder). Deine Implementierung von skip hat eher die Funktion eines goto. Ausserdem sollte das mp3Player Object, die Playlist die er gerade abspielt kennen (Instanzvariable), sodass solche sachen wie deren Größe oder den Titel an einer Stelle nicht als Parameter übergeben muss.
Von einem Playlist Object würde ich auch erwarten, dass Operationen wie get und size direkt darauf aufgerufen werden können, es also wirklich eine Liste ist.

Mal halber Pseudo-Code für mp3Player:
Java:
public class MP3Player
{
private int track;
private List<X> playlist;//=playlist.getPanel1List();

public void skip(boolean dir)
{
    track+=(dir?1:-1);
    track+=playlist.size();
    track%=playlist.size();
    //Um sicher zu stellen, das track immer in [0;size()-1] liegt;
}

public void goToTrack(int trackNo)
{
    if(trackNo<0 || trackNo>=playlist.size()) throw new IllegalArgumentExeption();
    track=(trackNo);
}


public void play()
{
    X track=playlist.get(mp3Player.getTrackNo());
    //alter code
}

}
 
hmmm, also mit dem getZufallszahl holt er mir ja vom Array ein zufälligen Index raus und spielt es ab.
Das macht er nur einmal.

Da ich 9 Playlisten habe, muss ich doch der Skip() die länge von der Playlist mitgeben.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Skip Listen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben