Código corto de lista de reproducción, evitar repetición

4

Estoy usando el shortcode de la lista de reproducción de WordPress para presentar algunas muestras de audio en una página determinada. Por ejemplo:

[playlist images="false" artists="false" ids="542,543"]

El shortcode, por defecto, hace un bucle en la lista de reproducción. La documentación en el códice no muestra una opción para deshabilitar la autorepeat / looping de la lista de reproducción a través de un parámetro.

Necesito deshabilitar el bucle de la lista de reproducción; Eso es jugar solo una vez. He intentado vincular al evento 'finalizado' como se sugiere en este post pero no estoy seguro de si este post anterior aún es válido. El código de ejemplo no se activará en absoluto.

¿Alguna sugerencia sobre cómo lograr esto?

    
pregunta Steve 03.06.2017 - 17:43

1 respuesta

2

Pude enlazar al evento audio object ended . Pero ciertamente hay más lógica que habría que agregar. Esto está funcionando para mí:

(function($){

    var customAudio = {

        initialize: function() {
            var self = this;
            // execute logic independently for each playlist in the document
            $('.wp-playlist').each(function(index) {
                // determine the last track in the playlist so that
                // when the last track ends we can pause the audio object
                lastTrack = $(this).find('.wp-playlist-tracks .wp-playlist-item:last a');
                // bind to the audio object's ended event and execute
                // our own ended logic
                $(this).find('audio').on('ended', function() {
                    // pass the audio object and the last track
                    self.ended(this, lastTrack);
                });
            });
        },

        ended : function (audio, lastTrack) {
            // if this audio element is the last track, pause it
            if ( audio.currentSrc === lastTrack.attr('href') ) {
                audio.pause();
            }
        }
    };

    $(function() {
        customAudio.initialize();
    });

}(jQuery));
    
respondido por el Jared Cobb 03.06.2017 - 20:30

Lea otras preguntas en las etiquetas