Das Drupal Modul "jPlayer" ist perfekt zur Wiedergabe von Audio-Dateien unter Einbinding als CCK-Formatter zu verwenden.
Die Drupal 6 Version verwendet den jPlayer Version 1.2. Im Gegensatz zur Drupal 7 Version ist dieser leider nicht so gut konfigurierbar und mit einigen Schwächen behaftet. Eine davon die die Endloswiedergabe im "Playlist"-Modus, sofern nur ein Track vorhanden ist. Dieses Problem wollen wir hier lösen.
Problembeschreibung:
Wird die beschriebene Version 1.2 des jPlayers im "Playlist"-Modus verwendet, es wird aber nur ein Titel angeboten, so erfolgt nach Ende der Wiedergabe eine erneute Wiedergabe am Anfang des Stückes.
Es kommt so zu einer Endloswiedergabe / Schleife / Wiederholung.
Analyse:
Grund für den Fehler ist die JavaScript "next"-Funktion im Drupal 6 Modul-Verzeichnis "jplayer" unter "sites/all/modules/jplayer/templates/jplayer.js".
Explizit findet ihr den Fehler in Zeile 100, bei:
if (playerType == 'playlist') {
Drupal.jPlayer.next(wrapper, player, playlist, active);
}
});
Hier wird automatisch die Wiedergabe des nächsten Titels gestartet.
Existiert kein weiterer Titel, wird jedoch (fälschlicherweise) der Ursprungstitel geliefert und erneut wiedergegeben. Siehe dazu die "next"-Implementierung!
Lösung:
Um das Problem zu beheben, ergänzen wir eine Funktion "hasNext" mit folgender Implementierung:
Drupal.jPlayer.hasNext = function(playlist, current) {
var index = (current + 1 playlist.length) ? current + 1 : 0;
return index != 0;
}
und ergänzen die oben genannte "onSoundComplete" Funktion folgendermaßen:
.jPlayer('onSoundComplete', function() {
if (playerType == 'playlist' && Drupal.jPlayer.hasNext(playlist, active)) {
Drupal.jPlayer.next(wrapper, player, playlist, active);
}
});
Nun wird die Wiedergabe nur gestartet, wenn es tatsächlich auch einen nächsten Track gibt.
Die vollständige korrigierte jplayer.js - Datei habe ich euch angehängt, dann braucht ihr das Original nur zu überschreiben, um den Fehler auszubügeln.
Aufpassen bei Modul-Updates!!
Viel Spaß mit der Lösung!
p. S. weitere Informationen zur Verwendung des jPlayers unter Drupal findet ihr mit einer netten Anleitung im Blog von Thomas:
http://blog.frobieter.de/content/audio-playback-unter-drupal-mit-playli…