/** ********************************************** **
@Music Demo [usage example]
@Last Update 2:00 PM Saturday, August 08, 2015
*************************************************** **/
jQuery(document).ready(function() {
_music();
});
/** _shop()
******************************* **/
function _music() {
/** AUDIO PLAYER
** *********************** **/
loadScript(plugin_path + 'mediaelement/mediaelement-and-player.min.js', function() { // load mediaelement plugin first!
/* global mejs, _wpmejsSettings */
(function ($) {
// add mime-type aliases to MediaElement plugin support
mejs.plugins.silverlight[0].types.push('video/x-ms-wmv');
mejs.plugins.silverlight[0].types.push('audio/x-ms-wma');
jQuery(function () {
var settings = {};
if ( typeof _wpmejsSettings !== 'undefined' ) {
settings = _wpmejsSettings;
}
settings.success = settings.success || function (mejs) {
var autoplay, loop;
if ( 'flash' === mejs.pluginType ) {
autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
loop = mejs.attributes.loop && 'false' !== mejs.attributes.loop;
autoplay && mejs.addEventListener( 'canplay', function () {
mejs.play();
}, false );
loop && mejs.addEventListener( 'ended', function () {
mejs.play();
}, false );
}
};
jQuery('audio,video').mediaelementplayer(settings);
});
}(jQuery));
/** ********************************* PLAYER REWRITE ********************************** **/
var theplayer = jQuery('audio').closest('.music-float-top-player, .music-top-player');
control = jQuery('audio').parent('.mejs-mediaelement').siblings('.mejs-controls');
// play pause next previous button
var play_control = jQuery('
');
control.prepend(play_control);
var previous = jQuery('');
previous.click(function(){
theplayer.siblings('.music-player-list').children('.active').prev().trigger('click');
});
previous.append('');
previous.appendTo(play_control);
var play = control.children('.mejs-playpause-button');
play.children('button').remove();
play.append('');
play.appendTo(play_control)
var next = jQuery('');
next.click(function(){
theplayer.siblings('.music-player-list').children('.active').next().trigger('click');
});
next.append('')
next.appendTo(play_control);
// time elapse
var time_rail = control.children('.mejs-time-rail');
var time_elapse = jQuery('(
');
time_elapse.appendTo(time_rail);
time_elapse.append(control.children('.mejs-currenttime-container'));
time_elapse.append(jQuery(' / '));
time_elapse.append(control.children('.mejs-duration-container'));
time_elapse.append(')');
// title and album thumbnail
theplayer.children('.music-top-player-title').prependTo(time_rail);
theplayer.children('.music-top-player-thumbnail').appendTo(time_rail);
// download section
theplayer.children('.music-top-player-download').each(function(){
jQuery(this).children('.top-player-list').click(function(){
theplayer.siblings('.music-player-list').slideToggle();
return false;
});
jQuery(this).appendTo(control);
});
// volumn bar
var volume_bar = jQuery('');
control.append(volume_bar);
control.children('.mejs-volume-button').appendTo(volume_bar);
control.children('.mejs-horizontal-volume-slider').appendTo(volume_bar);
// close bar
var open_bar = jQuery('#music-open-float-player');
var close_bar = jQuery('');
close_bar.append('');
control.append(close_bar);
/** ******************************************************************************* **/
/** *********************************** PLAYLIST ********************************** **/
function _playlist() {
jQuery(".music-player-list>li").click(function(){
if( jQuery(this).hasClass('active') ) return;
// case for album category page
jQuery('.music-player-list li').eq(jQuery(this).index()).each(function(){
jQuery(this).addClass('active');
jQuery(this).siblings().removeClass('active');
});
jQuery(this).addClass('active').siblings().removeClass('active');
var file = [];
if( jQuery(this).attr('data-mp3') ){
file.push({src: jQuery(this).attr('data-mp3'), type:'audio/mpeg'});
}
if( jQuery(this).attr('data-ogg') ){
file.push({src: jQuery(this).attr('data-ogg'), type:'audio/ogg'});
}
if( jQuery(this).attr('data-wav') ){
file.push({src: jQuery(this).attr('data-wav'), type:'audio/wav'});
}
var top_player = jQuery(this).parent('.music-player-list').siblings('.music-top-player, .music-float-top-player');
var song_title = (jQuery(this).attr('data-title'))? jQuery(this).attr('data-title'): jQuery(this).html();
top_player.find('.music-top-player-title').html(song_title);
if( jQuery(this).attr('data-download') ){
top_player.find('.top-player-download').attr('href', jQuery(this).attr('data-download')).show();
}else{
top_player.find('.top-player-download').hide();
}
if( jQuery(this).attr('data-apple') ){
top_player.find('.top-player-apple').attr('href', jQuery(this).attr('data-apple')).show();
}else{
top_player.find('.top-player-apple').hide();
}
if( jQuery(this).attr('data-amazon') ){
top_player.find('.top-player-amazon').attr('href', jQuery(this).attr('data-amazon')).show();
}else{
top_player.find('.top-player-amazon').hide();
}
top_player.find('audio:first').each(function(){
var temp_player;
if( typeof(this.player) == 'undefined' ){
temp_player = this;
}else{
temp_player = this.player;
}
temp_player.pause();
temp_player.setSrc(file);
temp_player.load();
temp_player.play();
});
});
} _playlist();
/** ******************************************************************************* **/
/** ******************************** SELECT ALBUM ********************************* **/
// select album
jQuery('.music-play-album').click(function(){
jQuery('.music-album-playing').removeClass('music-album-playing');
jQuery(this).addClass('music-album-playing');
var float_player = jQuery('#music-player');
var play_list = float_player.find('.music-player-list');
if( jQuery(this).siblings('.music-album-thumbnail').html() ){
float_player.find('.music-top-player-thumbnail').html( jQuery(this).siblings('.music-album-thumbnail').html() );
}
play_list.html( jQuery(this).siblings('.music-album-list').html() );
play_list.children('li').gdlr_play_list();
play_list.children('li:first').trigger('click');
});
// single album
jQuery('.music-album-song-list li .music-list-icon').click(function(){
jQuery(".music-album-song-list li").removeClass('active');
jQuery(this).closest('li').addClass('active');
var float_player = jQuery('#music-player');
var play_list = float_player.find('#music-player-list');
play_list.children().eq(jQuery(this).parent().index()).trigger('click');
});
/** ******************************************************************************* **/
/** ********************************* ALBUM PLAY ********************************** **/
jQuery('.album-play').click(function() {
jQuery('.album-play').removeClass('active');
jQuery(this).addClass('active');
var float_player = jQuery('#music-player');
var play_list = float_player.find('#music-player-list');
// if( jQuery(this).siblings('.music-top-player-thumbnail').html() ){
jQuery('.music-top-player-thumbnail').html(jQuery(this).siblings('.music-album-thumbnail').html());
// }
play_list.html( jQuery(this).siblings('.music-album-list').html() );
// play_list.attr('id', 'music-player-list');
_playlist();
play_list.children('li:first').trigger('click');
});
/** ******************************************************************************* **/
// play audio - [bottom player]
jQuery("#music-player .mejs-playpause-button").bind("click", function(e) {
e.preventDefault();
if(jQuery(this).hasClass('mejs-pause')) {
jQuery(".music-player-list>li").removeClass('active');
jQuery(".music-album-song-list li").removeClass('active');
}
});
// show player [bottom player]
jQuery("#music-player-open").bind("click", function(e) {
e.preventDefault();
jQuery("#music-player-open").animate({"bottom":"-70px"}, 400);
jQuery("#music-player").animate({"bottom":"0px"}, 400);
});
// hide player [bottom player]
jQuery("#music-player-close").bind("click", function(e) {
e.preventDefault();
jQuery("#music-player").animate({"bottom":"-160px"}, 400);
jQuery("#music-player-open").animate({"bottom":"6px"}, 400);
});
});
}