Enhancements for jPlayer Implementation
By Forrest Smith - Drempd.com
I love the jPlayer for easily being able to add modern mp3 support to web pages. I wanted a few additional features, so I created this additional script which adds a few updated features:
- Adding rewind/fast-forward support
- Ability to toggle the volume controls on and off
- Ability to specify the mp3 url by setting a ‘data-audiourl’ paramter.
The code for the additional javascript:
$(function () { $('.jp-jplayer').each(function (i, obj) { var jplayerId = "#" + $(this).attr('id'); $(jplayerId).jPlayer({ ready: function () { var audioUrl = $(this).attr('data-audiourl'); $(this).jPlayer("setMedia", { mp3: audioUrl }); }, play: function () { // To avoid multiple jPlayers playing together. $(this).jPlayer("pauseOthers"); }, swfPath: "/js/vendor/", supplied: "mp3", wmode: "window", globalVolume: true, useStateClassSkin: true, autoBlur: false, smoothPlayBar: true, keyEnabled: true, cssSelectorAncestor: jplayerId + "_container", }); }); $(document).on('click', '.jp-play', function (e) { e.preventDefault(); $(this).find('.fa-playpause').toggle(); }); $(document).on('click', '.jp-volume-controls-toggle', function (e) { e.preventDefault(); var target = "#" + $(this).attr('data-target'); $(target).toggle(); }); $(document).on('click', '.jp-back', function (e) { e.preventDefault(); JpSeek($(this), -10); }); $(document).on('click', '.jp-forward', function (e) { e.preventDefault(); JpSeek($(this), 10); }); }); $(document).mouseup(HideVolume); function HideVolume(e) { var container = $(".jp-volume-controls"); // if the target of the click isn't the container nor a descendant of the container, and if if (!container.is(e.target) && container.has(e.target).length === 0 && container.is(':visible') && !$(e.target).hasClass('volume-toggle')) { container.hide(); } } function JpSeek(el, val) { var playerId = el.closest('.jp-audio').attr('id').replace("_container", ""); var jPlayerInstance = $("#" + playerId); var currentpos = jPlayerInstance.data("jPlayer").status.currentTime; var songDuration = jPlayerInstance.data("jPlayer").status.duration; var currentPosPercentage = currentpos / songDuration * 100; jPlayerInstance.jPlayer("playHead", currentPosPercentage + val); // Move play-head. }
HTML Code
Listen to this phone lead:Update Required To play the media you will need to either update your browser to a recent version or update your Flash plugin.
-
Adventure
-
The Built Environment
-
Locations
-
Web Dev