Audio Player-Pause funktioniert nicht

ojamaney

Erfahrenes Mitglied
Ich habe mir einen Seite mit einem Player gebaut. Funktioniert alles soweit super.
Nur, die Tracks lassen sich nicht pausieren, bzw pausieren ja aber nach Klick auf "weiter" wird der Track wieder von Anfang gespielt.

Hier der Tatverdächtige:
Code:
function mPlay(x) {
    if(play_control == 0) {
       
        // Titel im Display setzen
        document.getElementById('info').innerText = x;
       
        // Cover setzen
        document.getElementById('pic').src = imgPath+x+".jpg";       
       
        // Lautstärke setzen bzw vorherige übernehmen
        if(cur_vol == 0){
            mVolume('4');
        } else {
            mVolume(cur_vol);
        }
       
        // Aktuelle Position setzen
        document.getElementById('mPlayer').currentTime = playPos;
       
        // Track abspielen
        document.getElementById('mPlayer').src = mediaPath+x+".mp3";
        document.getElementById('mPlayer').play();
        document.getElementById('playbtn').src = 'img/main/pause.png';   
        play_control = 1;
        window.setTimeout("playControl()",0);
        window.setTimeout("mPlaytime()",0);
    } else {
       
        // Pausieren       
        document.getElementById('mPlayer').pause();
        document.getElementById('playbtn').src = 'img/main/play.png';
        play_control = 0;
       
        // Aktuelle Position speichern
        playPos = document.getElementById('mPlayer').currentTime;
    }
}

Wie ihr seht habe ich auch die Position gespeichert und vor dem abspielen gesetzt. Aber das interessiert das Script nicht. Es springt einfach auf den Anfang.

Ich habe einen Verdacht, weiss aber nicht wie ich ihn lösen könnte wenn er richtig ist.
Dazu muss ich den Vorgang erklären oder ihr schaut es euch auf der Seite selber an und versucht es zu durchschauen.

Link: http://skiron.de/m42ears/

Erklärung:
Zum Abspielen und Pausieren nutze ich einunddenselben Div indem ich dann nur das Bild wechsel. Klick ich auf das Bild wird der Dateiname an die obige Funktion gesendet. Setzt er es durch die "erneute" Zuweisung immer wieder neu? Wenn ja, hat da jemand n Trick auf Lager? ^^

Danke schon mal für alles :)
 
nach Klick auf "weiter" wird der Track wieder von Anfang gespielt. ... Wie ihr seht habe ich auch die Position gespeichert und vor dem abspielen gesetzt. Aber das interessiert das Script nicht. Es springt einfach auf den Anfang.
Das liegt daran, dass Du nach dem Setzen der currentTime die MP3 durch Setzen des src-Attributs neu lädst:
Code:
        document.getElementById('mPlayer').currentTime = playPos;
      
        // Track abspielen
        document.getElementById('mPlayer').src = mediaPath+x+".mp3";
Dadurch wird das Abspielen neu begonnen und startet am Anfang. Sollte sich beheben lassen durch Vertauschen der Reihenfolge. Oder Du stellst das Skript so um, dass beim Fortsetzen das Laden unterbleibt.
Allerdings ist beim Pausieren das Speichern der Position gar nicht nötig. Das Audioelement setzt beim Play automatisch an der alten Position fort, wenn zuvor pausiert wurde.
 
Zurück