Drupal 6: jplayer Modul + jplayer 1.2 loop / repeat Bug beheben
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:
- .jPlayer('onSoundComplete', function() {
- 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-playlist
Anhang | Größe |
---|---|
jplayer.js | 5.36 KB |
- Anmelden um Kommentare zu schreiben
Euch gefällt mein Blog?
Vielleicht hilft mir auch ein Buch, euch zukünftig (noch) bessere Artikel zu bieten? (Amazon Wunschliste)
Gerne bewerte ich auch ab und zu einmal unabhängig ein Produkt.
Ich freue mich über jede Art der Unterstützung in Form von Kommentaren, Lob oder Kritik.
Auf zum Kontaktformular!
Zu meinem Google+ Profil
Julian Pustkuchen, M. Sc. Wirtschaftsinformatik ist passionierter Software- & Webentwickler mit den Schwerpunkten Softwaredesign, Objektorientierung sowie Usability- & Ablaufoptimierung bei webks. Ein weiterer Schwerpunkt ist die Entwicklung im CMS Drupal.
Entwickelt Julian gerade keine Software, fährt er Ski, Mountainbike, spielt Badminton, segelt oder verbringt Zeit mit Freunden.
Dieser Blog dient als sein "öffentlicher Notizblo(ck/g)".
Webbasierte Lösungen? Machen wir!
webks: websolutions kept simple
http://www.webks.de
Dir hat dieser Beitrag viel Zeit und Nerven gespart?
Dann freue ich mich über jede kleine Anerkennung:
Oder du suchst weitere professionelle Unterstützung?
Dann bietet dir unser webks.de Softwareentwickler-Team professionelle Dienstleistungen im Web-Development und der Drupal CMS Entwicklung!