var sound = {
source :{},
title: audio.attr('title'),
- id:audio.attr('id'),
sound_id:audio.data('sound-id'),
url:audio.attr('data-url'),
focus:audio.attr('data-player-focus')
},
// Transform JSON sound object to HTML container for playlist.
_htmlifyJsonSound: function(sound) {
- var container = $('<li>').attr('data-origin',sound.id);
+ var container = $('<li>');
var audio = $('<audio>',this.options.html5audioOptions)
.attr('title',sound.title).hide()
.attr('data-sound-id', sound.sound_id)
var source = $('<source>',{src:v,type:k});
audio.append(source);
});
- audio.on('play',function(){
+ audio.on('play',function(e){
+ if (e.originalEvent === undefined) {
+ return;
+ }
if (typeof (_paq) == 'object') {
_paq.push(['trackEvent', 'Audio', 'Play', audio_str]);
}
playpause.addClass('icon-pause').removeClass('icon-play');
thePlaylist.controlButtons['playpause'].removeClass('icon-play').addClass('icon-pause');
thePlaylist.afterPlay();
- }).on('pause',function(){
+ var sound_id = $(e.target).data('sound-id');
+ $(document).trigger('panik:play', {'sound_id': sound_id});
+ }).on('pause',function(e){
$(this).removeClass('playing');
playpause.addClass('icon-play').removeClass('icon-pause');
+ var sound_id = $(e.target).data('sound-id');
+ $(document).trigger('panik:pause', {'sound_id': sound_id});
thePlaylist.controlButtons['playpause'].removeClass('icon-pause').addClass('icon-play');
- }).on('stop',function(){
+ }).on('stop',function(event){
$(this).trigger('pause');
if($(this)[0].currentTime){$(this)[0].currentTime = 0;}
- }).on("ended", function(){
+ }).on("ended", function(e){
if (typeof (_paq) == 'object') {
_paq.push(['trackEvent', 'Audio', 'End', audio_str]);
}
});
var controls = $('<span>',{'class':'soundControls controls'});
var link = $('<a>',{href:sound.url,'class':'button icon-external-link'});
- var html5 = $('<button>',{title:"Display HTML5 audio",'class':'icon-html5',click:function(){
- audio.toggle();
- }}).hide();
var remove = $('<button>',{title:"Remove from list",'class':'icon-remove',click:function(){
+ audio.trigger('stop');
container.remove();
thePlaylist._update();
}});
audio.trigger('beforePlay').trigger('play');
}
}});
- controls.append(playpause).append(stop).append(remove).append(html5);
+ controls.append(playpause).append(stop).append(remove);
var title = $('<a>',{title:"More information",href:sound.url,'class':"button title",html:sound.title});
container.append(controls).append(title).append(audio);
if(sound.focus){thePlaylist.setFocus(container);}
// Play next sound
bindControl: function(control,audio,element,options) {
element.addClass('loading');
- audioID = audio.attr('id');
+ audioID = audio.data('souce-id');
//TODO for controls in page content
},
// Play next sound