1var elementAudio = document.createElement( 'audio' ); 2elementAudio.src = IRON.state.theme_url + '/js/assets/default.wav'; 3 4var elementAudioSingle = document.createElement( 'audio' ); 5elementAudioSingle.src = IRON.state.theme_url + '/js/assets/default.wav'; 6 7IRON.audioPlayer = function($){ 8 "use strict"; 9 var seekTimeOut; 10 11 12 function initPlayer( player ){ 13 var audioPlayer = player; 14 this.audioPlayer = player; 15 var waveContainer = this.audioPlayer.find('.player .wave').attr('id'); 16 var playlist = audioPlayer.find('.playlist'); 17 this.playlist = playlist; 18 19 20 var wavesurfer = WaveSurfer.create({ 21 container: '#' + waveContainer, 22 cursorWidth: 0, 23 barWidth: 1, 24 progressColor: iron_vars.soundrise_music.color_progress, 25 waveColor: iron_vars.soundrise_music.color_base, 26 height: 70, 27 backend: 'MediaElement', 28 mediaControls: false, 29 }); 30 31 wavesurfer.on('loading', function(){ 32 var progressLoad = arguments[0] 33 audioPlayer.find('.progressLoading').css('background', iron_vars.soundrise_music.color_base ); 34 audioPlayer.find('.progressLoading').css('width', 'calc( ' + progressLoad + '% - 200px )' ) 35 if (progressLoad == 100) { 36 audioPlayer.find('.player').addClass('reveal') 37 audioPlayer.find('.progressLoading').css('opacity', '0' ) 38 } 39 }) 40 41 this.wavesurfer = wavesurfer; 42 43 setPlaylist( playlist , wavesurfer, audioPlayer ); 44 setCurrentTrack( playlist.find('li').eq(0), playlist.find('li').index(), audioPlayer, wavesurfer ); 45 setControl( wavesurfer, audioPlayer, playlist ); 46 setNextSong( wavesurfer, audioPlayer, playlist ); 47 trackListItemResize(); 48 49 if( audioPlayer.data('autoplay') ){ 50 51 if (IRON.state.enable_ajax) { 52 if( typeof IRON.continuousPlayer.wavesurfer !== "undefined" && IRON.continuousPlayer.wavesurfer.isPlaying() ) 53 return 54 55 $.when( IRON.continuousPlayer.ready ).done(function(){ 56 play( audioPlayer, wavesurfer ); 57 }) 58 }else{ 59 if ( wavesurfer.isPlaying() ) 60 return 61 62 triggerPlay(wavesurfer, audioPlayer) 63 } 64 } 65 } 66 67 var setNextSong = function( wavesurfer, audioPlayer, playlist ){ 68 wavesurfer.on('finish', function(){ 69 next(audioPlayer, playlist) 70 }) 71 } 72 73 74 function triggerPlay(wavesurfer, audioPlayer ){ 75 wavesurfer.on('ready', function(){ 76 if( wavesurfer.isPlaying() ) 77 return 78 79 wavesurfer.play(); 80 togglePlaying(audioPlayer, wavesurfer) 81 }) 82 } 83 84 function setCurrentTrack( track, index, audioPlayer, wavesurfer ){ 85 var albumArt = audioPlayer.find('.album .album-art'); 86 var trackTitle = audioPlayer.find('.track-title'); 87 var trackArtist = audioPlayer.find('.sr_it-artists-value'); 88 var albumTitle = audioPlayer.find('.album-title'); 89 var albumTitle = audioPlayer.find('.sr_it-playlist-title'); 90 var albumReleaseDate = audioPlayer.find('.sr_it-date-value'); 91 92 if ( albumArt.find('img').length ) { 93 albumArt.find('img').attr('src', track.data('albumart')); 94 }else{ 95 albumArt.css('background-image', 'url(' + track.data('albumart') + ')'); 96 } 97 98 if( !audioPlayer.hasClass('show-playlist') ){ 99 albumArt.one('click', function(){ 100 setContinuousPlayer( index , audioPlayer); 101 }) 102 albumArt.css('cursor','pointer') 103 } 104 audioPlayer.data('currentTrack', index); 105 106 if ( !IRON.state.enable_ajax ) { 107 trackTitle.text(track.data('tracktitle')); 108 trackArtist.html(track.data('trackartists')); 109 albumReleaseDate.text(track.data('releasedate')); 110 albumTitle.text(track.data('albumtitle')); 111 audioPlayer.find('.player').removeClass('hide') 112 113 if ( !track.data('showloading') ) { 114 audioPlayer.find('.player').addClass('hide') 115 }else{ 116 audioPlayer.find('.progressLoading').css('opacity', '0.75' ) 117 } 118 119 setAudio(track.data('audiopath'), wavesurfer); 120 setTime( audioPlayer, wavesurfer ); 121 } 122 hideEmptyAttribut(track.data('releasedate'), audioPlayer.find('.sr_it-playlist-release-date')); 123 hideEmptyAttribut(track.data('trackartists'), audioPlayer.find('.sr_it-playlist-artists')); 124 125 } 126 127 function setPlaylist( playlist , wavesurfer, audioPlayer ){ 128 playlist.find('li').each(function(){ 129 setSingleTrack( $(this), $(this).index(), wavesurfer, audioPlayer ); 130 }) 131 } 132 133 function setTime( audioPlayer, wavesurfer ){ 134 wavesurfer.on('ready', function(){ 135 if( wavesurfer.isPlaying() ) 136 return 137 138 var totalTime = moment.duration(wavesurfer.getDuration(), 'seconds' ); 139 audioPlayer.find('.totalTime').html( moment( totalTime.minutes()+':'+totalTime.seconds(), 'm:s' ).format( 'mm:ss' ) ); 140 wavesurfer.on('audioprocess', function(){ 141 var time = moment.duration(wavesurfer.getCurrentTime(), 'seconds' ); 142 audioPlayer.find('.currentTime').html( moment( time.minutes()+':'+time.seconds(), 'm:s' ).format( 'mm:ss' ) ); 143 }) 144 }) 145 } 146 147 function setControl( wavesurfer, audioPlayer, playlist ){ 148 var ctrl = audioPlayer.find('.control'); 149 if ( IRON.state.enable_ajax ){ 150 151 audioPlayer.find('.wave').remove() 152 153 } 154 155 ctrl.on('click', '.play', function(){ 156 play( audioPlayer, wavesurfer ) 157 triggerPlay(wavesurfer, audioPlayer ) 158 }) 159 ctrl.on('click', '.previous', function(){ 160 previous( audioPlayer, wavesurfer, playlist ) 161 }) 162 ctrl.on('click', '.next', function(){ 163 next( audioPlayer, wavesurfer, playlist ) 164 }) 165 166 } 167 168 function setSingleTrack( singleTrack , eq, wavesurfer, audioPlayer ){ 169 var tracknumber = eq + 1; 170 var trackplay = $('<span/>',{ 171 class: 'track-number', 172 html: '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 17.5 21.2" style="enable-background:new 0 0 17.5 21.2;" xml:space="preserve"><path d="M0,0l17.5,10.9L0,21.2V0z"></path><rect width="6" height="21.2"></rect><rect x="11.5" width="6" height="21.2"></rect></svg><span class="number">' + tracknumber + '</span>' 173 }) 174 $('') 175 $('<a/>',{ 176 class: 'audio-track', 177 click: function(){ 178 if( $(this).parent().attr('data-audiopath').length == 0 ){ 179 return; 180 } 181 if ( IRON.state.enable_ajax ) { 182 setContinuousPlayer( eq , audioPlayer); 183 audioPlayer.data('currentTrack', eq); 184 }else{ 185 setCurrentTrack( singleTrack , eq, audioPlayer, wavesurfer); 186 audioPlayer.find('.playlist li').removeClass('current'); 187 singleTrack.addClass('current'); 188 triggerPlay(wavesurfer, audioPlayer) 189 togglePlaying( audioPlayer, wavesurfer); 190 191 } 192 } 193 }).appendTo(singleTrack).prepend(trackplay).append('<div class="tracklist-item-title">' + singleTrack.data('tracktitle') + '</div>'); 194 } 195 196 function trackListItemResize(){ 197 $('.playlist li').each(function(){ 198 $(this).find('.tracklist-item-title').css( 'max-width', $(this).outerWidth() - $(this).find('.button').outerWidth() - $(this).find('.track-number').outerWidth() - 10 ); 199 }) 200 }; 201 202 var setAudio = function( audio, wavesurfer ){ 203 seekTimeOut = setTimeout( function(){ 204 elementAudio.src = audio 205 wavesurfer.load( elementAudio ); 206 }, 250 ) 207 } 208 209 function getTime( wavesurfer ){ 210 return wavesurfer.getCurrentTime() 211 } 212 213 function togglePlaying(audioPlayer, wavesurfer ) { 214 215 $.each(IRON.players, function(index, value){ 216 IRON.players[index].audioPlayer.removeClass('audio-playing'); 217 }) 218 219 if ( wavesurfer.isPlaying() ) { 220 audioPlayer.addClass('audio-playing'); 221 return; 222 } 223 audioPlayer.removeClass('audio-playing') 224 } 225 226 function play( audioPlayer, wavesurfer ){ 227 if ( IRON.state.enable_ajax ) { 228 var playlist = audioPlayer.find('.playlist'); 229 var currentTrack = audioPlayer.data('currentTrack'); 230
231 if ( ( IRON.continuousPlayer.wavesurfer.getCurrentTime() >= 0.1 || IRON.continuousPlayer.wavesurfer.isPlaying() ) && IRON.continuousPlayer.playlist.url == audioPlayer.data('url-playlist') ) { 232 IRON.continuousPlayer.play() 233 return 234 } 235 if ( IRON.continuousPlayer.wavesurfer.getDuration() == 1) { 236 IRON.continuousPlayer.wavesurfer.play() 237 } 238 playlist.find('li').eq(currentTrack).find('a').click(); 239 return 240 } 241 242 wavesurfer.playPause(); 243 togglePlaying( audioPlayer, wavesurfer); 244 } 245 246 function previous( audioPlayer, wavesurfer, playlist ){ 247 var currentTrack = audioPlayer.data('currentTrack'); 248 var nextTrack = currentTrack - 1; 249 250 if ('2' < getTime( wavesurfer ) ) { 251 wavesurfer.seekTo(0); 252 return; 253 } 254 playlist.find('li').eq(nextTrack).find('a').click(); 255 256 } 257 258 function next( audioPlayer, wavesurfer, playlist ){ 259 var currentTrack = audioPlayer.data('currentTrack'); 260 var nextTrack = currentTrack + 1; 261 262 if ( !playlist.find('li').eq(nextTrack).length){ 263 nextTrack = 0; 264 } 265 wavesurfer.pause(); 266 playlist.find('li').eq(nextTrack).find('a').click(); 267 } 268 269 function getPlayer(){ 270 return this; 271 } 272 function getplay(){ 273 play( this.audioPlayer, this.wavesurfer ) 274 } 275 276 function setContinuousPlayer( eq , audioPlayer){ 277 IRON.continuousPlayer.setPlaylist( audioPlayer ) 278 IRON.continuousPlayer.setCurrentTrack( eq , audioPlayer) 279 } 280 281 return { 282 init : initPlayer, 283 getPlayer : getPlayer, 284 play : getplay 285 286 }; 287 288}(jQuery); 289 290 291IRON.continuousPlayer = function($){ 292 "use strict"; 293 var playlist = { 294 'promise' : $.Deferred() 295 } 296 var playing = false 297 var wavesurfer 298 var continuousPlayer = {} 299 var seekTimeOut 300 var ready = $.Deferred() 301 var playerConsent = false 302 303 304 var setPlayer = function( player ){ 305 var ready = this.ready 306 $.get( IRON.state.theme_url + '/js/assets/audioplayer.html').done(function(data){ 307 $('body').append(data) 308 continuousPlayer = $('.continuousPlayer'); 309 var continuous_background = iron_vars.soundrise_music.continuous_background 310 if ( iron_vars.soundrise_music.continuous_background == '' ) { 311 continuous_background = 'rgb(0,0,0)' 312 } 313 continuousPlayer.css( 'background-color', continuous_background ) 314 315 wavesurfer = WaveSurfer.create({ 316 container: '#cplayer', 317 cursorWidth: 0, 318 barWidth: 1, 319 progressColor: iron_vars.soundrise_music.continuous_timeline_background, 320 waveColor: iron_vars.soundrise_music.continuous_progress_bar, 321 height: 36, 322 backend: 'MediaElement', 323 mediaControls: false, 324 partialRender: true 325 }); 326 327 wavesurfer.load(elementAudio) 328 IRON.continuousPlayer.wavesurfer = wavesurfer 329 setControl() 330 setNextSong() 331 332 wavesurfer.on('ready', function(){ 333 setLoading('done'); 334 }) 335 336 wavesurfer.on('loading', function(){ 337 var progressLoad = arguments[0] 338 continuousPlayer.find('.progressLoading').css('background', iron_vars.soundrise_music.continuous_progress_bar ); 339 continuousPlayer.find('.progressLoading').css('width', 'calc( ' + progressLoad + '% - 200px )' ) 340 341 }) 342 343 wavesurfer.on('waveform-ready', function(){ 344 revealWave(); 345 continuousPlayer.find('.progressLoading').css('opacity', '0' ) 346 }) 347 348 ready.resolve() 349 }) 350 351 } 352 353 var revealWave = function(){ 354 continuousPlayer.find('#cplayer').addClass('reveal') 355 } 356 357 358 var setPlaylist = function( audioPlayer ){ 359 playlist.promise = $.Deferred() 360 361 if ( playlist.url == undefined || playlist.url != audioPlayer.data('url-playlist') ) { 362 363 $.when( $.getJSON(audioPlayer.data('url-playlist'))).done(function(data){ 364 365 if ( ! $('body').hasClass('artistPlayer-enable') ) { 366 IRON.initPusherHeight() 367 continuousPlayer.addClass('enable') 368 $('body').addClass('continuousPlayer-enable') 369 } 370 playlist.url = audioPlayer.data('url-playlist') 371 playlist.list = data 372 playlist.promise.resolve() 373 }) 374 }else{ 375 IRON.continuousPlayer.playlist.promise.resolve() 376 } 377 } 378 379 var setCurrentTrack = function( eq ,audioPlayer){ 380 381 playing = true 382 if (playlist.currentTrack == eq && playlist.url == audioPlayer.data('url-playlist') ) { 383 384 wavesurfer.playPause(); 385 setStatus() 386 }else{ 387 388 playlist.currentTrack = eq
389 continuousPlayer.find('#cplayer').removeClass('reveal') 390 391 $.when( playlist.promise ).done(function(){ 392 setTrackInfo(eq); 393 setAudio( playlist.list[eq].mp3 ); 394 395 if ( !playlist.list[eq].showLoading ) { 396 continuousPlayer.find('#cplayer').addClass('hide') 397 }else{ 398 continuousPlayer.find('.progressLoading').css('opacity', '0.75' ) 399 } 400 if ( playerConsent || ( !isiPhone && !isiPad ) ) { 401 wavesurfer.on('ready', function(){ 402 wavesurfer.play(); 403 setStatus() 404 playing = false 405 }) 406 } 407 }) 408 } 409 410 411 } 412 413 var setTrackInfo = function(eq){ 414 $.when( playlist.promise ).done(function(){ 415 continuousPlayer.find('.album-art img').attr('src', playlist.list[eq].poster) 416 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.album-art img').attr('src', playlist.list[eq].poster) 417 continuousPlayer.find('.metadata .album-title').text( playlist.list[eq].album_title) 418 continuousPlayer.find('.metadata .track-name').text( playlist.list[eq].track_title) 419 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-playlist-title').html( playlist.list[eq].album_title) 420 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-artists-value').html( playlist.list[eq].artist) 421 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-date-value').html( playlist.list[eq].release_date) 422 }) 423 hideEmptyAttribut(playlist.list[eq].release_date, $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-playlist-release-date')); 424 hideEmptyAttribut(playlist.list[eq].artist, $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('.sr_it-playlist-artists'));} 425 426 var setNextSong = function(){ 427 wavesurfer.on('finish', function(){ 428 if( !playing ) 429 next() 430 }) 431 } 432 433 var setLoading = function( classes ){ 434 switch (classes) { 435 case 'loading': 436 continuousPlayer.addClass('loading') 437 break; 438 439 default: 440 continuousPlayer.removeClass('loading') 441 } 442 } 443 444 var setAudio = function( audio ){ 445 seekTimeOut = setTimeout( function(){ 446 elementAudio.src = audio 447 wavesurfer.load( elementAudio ); 448 }, 250 ) 449 } 450 451 function setControl(){ 452 var ctrl = continuousPlayer.find('.control'); 453 454 ctrl.on('click', '.play', function(){ 455 play() 456 }) 457 ctrl.on('click', '.previous', function(){ 458 previous() 459 }) 460 ctrl.on('click', '.next', function(){ 461 next() 462 }) 463 464 } 465 466 function play(){ 467 playerConsent = true; 468 wavesurfer.playPause(); 469 setStatus() 470 } 471 472 var setStatus = function(){ 473 474 $.each(IRON.players, function(index, value){ 475 IRON.players[index].audioPlayer.removeClass('audio-playing'); 476 }) 477 478 if ( wavesurfer.isPlaying() ) { 479 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').addClass('audio-playing') 480 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('li').removeClass('current'); 481 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('li').eq( IRON.continuousPlayer.playlist.currentTrack ).addClass('current'); 482 continuousPlayer.addClass('audio-playing'); 483 484 return; 485 } 486 487 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').removeClass('audio-playing') 488 $('.iron-audioplayer[data-url-playlist="' + playlist.url + '"]').find('li').removeClass('current'); 489 continuousPlayer.removeClass('audio-playing') 490 } 491 492 function previous(){ 493 clearTimeout(seekTimeOut) 494 var currentTrack = playlist.currentTrack; 495 var nextTrack = currentTrack - 1; 496 497 if ('2' < getTime( wavesurfer ) ) { 498 wavesurfer.seekTo(0); 499 return; 500 } 501 502 if ( nextTrack < 0 ){ 503 nextTrack = playlist.list.length - 1; 504 } 505 setCurrentTrack(nextTrack); 506 507 508 } 509 510 function next(){ 511 clearTimeout(seekTimeOut) 512 var currentTrack = playlist.currentTrack; 513 var nextTrack = currentTrack + 1; 514 515 if ( nextTrack + 1 > playlist.list.length ){ 516 nextTrack = 0; 517 } 518 setCurrentTrack(nextTrack); 519 520 } 521 522 function getTime(){ 523 return wavesurfer.getCurrentTime() 524 } 525 526 return { 527 setPlayer : setPlayer, 528 setPlaylist : setPlaylist, 529 setCurrentTrack : setCurrentTrack, 530 setTrackInfo : setTrackInfo, 531 setAudio : setAudio, 532 playlist : playlist, 533 play : play, 534 ready : ready 535 } 536 537}(jQuery); 538 539function hideEmptyAttribut(string, selector){ 540 if(string== ''){ 541 selector.css('display', 'none'); 542 }else{ 543 selector.css('display', 'block'); 544 } 545} 546 547IRON.artistPlayer = function($){ 548 "use strict"; 549 var artistWavesurfer 550 var artistPlayer 551 var seekTimeOut 552 var playlist = { 553 'promise' : $.Deferred() 554 } 555 var playerConsent = false 556 557 var setPlayer = function(){ 558 IRON.artistPlayer.continuousPlayer = false;
559 playerConsent = false 560 561 562 563 artistPlayer = $('.artist_player'); 564 var continuous_background = iron_vars.soundrise_music.continuous_background 565 if ( iron_vars.soundrise_music.continuous_background == '' ) { 566 continuous_background = 'rgb(0,0,0)' 567 } 568 artistPlayer.css( 'background-color', continuous_background ) 569 570 artistWavesurfer = WaveSurfer.create({ 571 container: '#artistPlayer', 572 cursorWidth: 0, 573 barWidth: 1, 574 progressColor: iron_vars.soundrise_music.continuous_timeline_background, 575 waveColor: iron_vars.soundrise_music.continuous_progress_bar, 576 height: 36, 577 backend: 'MediaElement', 578 mediaControls: false, 579 partialRender: true 580 }); 581 582 artistWavesurfer.load(elementAudioSingle) 583 IRON.artistPlayer.wavesurfer = artistWavesurfer 584 setControl() 585 setNextSong() 586 IRON.artistPlayer.playlist.promise = $.Deferred(); 587 setPlaylist() 588 setCurrentTrack(0) 589 590 591 artistWavesurfer.on('loading', function(){ 592 var progressLoad = arguments[0] 593 artistPlayer.find('.progressLoading').css('background', iron_vars.soundrise_music.continuous_progress_bar ); 594 artistPlayer.find('.progressLoading').css('width', 'calc( ' + progressLoad + '% - 275px )' ) 595 if (progressLoad == 100) { 596 revealWave(); 597 artistPlayer.find('.progressLoading').css('opacity', '0' ) 598 } 599 }) 600 601 602 } 603 var revealWave = function(){ 604 artistPlayer.find('#artistPlayer').addClass('reveal') 605 } 606 607 var setPlaylist = function(){ 608 IRON.artistPlayer.playlist.promise = $.Deferred(); 609 610 $.when( $.getJSON(artistPlayer.data('url-playlist'))).done(function(data){ 611 artistPlayer.addClass('enable') 612 613 IRON.initPusherHeight() 614 $('body').addClass('artistPlayer-enable') 615 playlist.url = artistPlayer.data('url-playlist') 616 playlist.list = data 617 IRON.artistPlayer.playlist.promise.resolve() 618 619 }) 620 } 621 622 var setCurrentTrack = function( eq , audioPlayer ){ 623 624 playlist.currentTrack = eq 625 artistPlayer.find('#artistPlayer').removeClass('reveal') 626 627 $.when( IRON.artistPlayer.playlist.promise ).done(function(){ 628 artistPlayer.find('.album-art img').attr('src', playlist.list[eq].poster).css('display','block'); 629 artistPlayer.find('.metadata .album-title').text( playlist.list[eq].album_title) 630 artistPlayer.find('.sr_it-playlist-title').text( playlist.list[eq].album_title) 631 artistPlayer.find('.metadata .track-name').text( playlist.list[eq].track_title) 632 artistPlayer.find('.sr_it-artists-value').html( playlist.list[eq].release_date ) 633 artistPlayer.find('.sr_it-date-value').html( playlist.list[eq].artist ) 634 635 setAudio( playlist.list[eq].mp3 ); 636 if (IRON.artistPlayer.continuousPlayer) { 637 transfertPlaylist() 638 } 639 640 if ( !playlist.list[eq].showLoading ) { 641 artistPlayer.find('#artistPlayer').addClass('hide') 642 }else{ 643 artistPlayer.find('.progressLoading').css('opacity', '0.75' ) 644 } 645 646 if ( playerConsent ) { 647 artistWavesurfer.on('ready', function(){ 648 artistWavesurfer.play(); 649 setStatus() 650 }) 651 } 652 653 }) 654 655 656 } 657 658 var setNextSong = function(){ 659 artistWavesurfer.on('finish', function(){ 660 next() 661 }) 662 } 663 664 var setLoading = function( classes ){ 665 switch (classes) { 666 case 'loading': 667 artistPlayer.addClass('loading') 668 break; 669 670 default: 671 artistPlayer.removeClass('loading') 672 } 673 } 674 675 var setAudio = function( audio ){ 676 seekTimeOut = setTimeout( function(){ 677 678 if ( IRON.artistPlayer.continuousPlayer ) { 679 elementAudio.src = audio 680 artistWavesurfer.load( elementAudio ); 681 }else{ 682 elementAudioSingle.src = audio 683 artistWavesurfer.load( elementAudioSingle ); 684 } 685 686 }, 250 ) 687 } 688 689 function setControl(){ 690 var ctrl = artistPlayer.find('.control'); 691 ctrl.find('.play').css({ 692 'fill': iron_vars.soundrise_music.continuous_control_color, 693 'path': iron_vars.soundrise_music.continuous_control_color 694 }) 695 ctrl.find('.next').css({ 696 'fill': iron_vars.soundrise_music.continuous_control_color, 697 'path': iron_vars.soundrise_music.continuous_control_color 698 }) 699 ctrl.find('.previous').css({ 700 'fill': iron_vars.soundrise_music.continuous_control_color, 701 'path': iron_vars.soundrise_music.continuous_control_color 702 }) 703 704 705 ctrl.on('click', '.play', function(){ 706 707 if (!IRON.artistPlayer.continuousPlayer) { 708 playerConsent = true; 709 $('.continuousPlayer').removeClass('enable') 710 $('body').removeClass('continuousPlayer-enable') 711 IRON.initPusherHeight() 712 713 enableContinuousPlayer() 714 transfertPlaylist() 715 setPlaylist() 716 setCurrentTrack( playlist.currentTrack ) 717 }else{ 718 play() 719 } 720 }) 721 ctrl.on('click', '.previous', function(){ 722 previous() 723 }) 724 ctrl.on('click', '.next', function(){ 725 next() 726 }) 727 728 } 729 730 731 732 var enableContinuousPlayer = function(){ 733 IRON.artistPlayer.continuousPlayer = true; 734 } 735 736 var setStatus = function(){ 737 if ( artistWavesurfer.isPlaying() ) { 738 artistPlayer.addClass('audio-playing'); 739 return; 740 } 741 artistPlayer.removeClass('audio-playing') 742 } 743 744 745 function play(){ 746 playerConsent = true; 747 artistWavesurfer.playPause(); 748 setStatus() 749 750 } 751 752 var transfertPlaylist = function(){ 753 $.when( IRON.continuousPlayer.ready ).done(function(){ 754 IRON.continuousPlayer.setPlaylist( artistPlayer ); 755 $.when( IRON.continuousPlayer.playlist.promise ).done(function(){ 756 IRON.continuousPlayer.setTrackInfo( IRON.artistPlayer.playlist.currentTrack ); 757 IRON.continuousPlayer.playlist.currentTrack = IRON.artistPlayer.playlist.currentTrack; 758 IRON.continuousPlayer.setAudio( IRON.continuousPlayer.playlist.list[IRON.artistPlayer.playlist.currentTrack].mp3 ) 759 }) 760 }) 761 } 762 763 function previous(){ 764 clearTimeout(seekTimeOut) 765 var currentTrack = playlist.currentTrack; 766 var nextTrack = currentTrack - 1; 767 768 if ('2' < getTime( artistWavesurfer ) ) { 769 artistWavesurfer.seekTo(0); 770 return; 771 } 772 773 if ( nextTrack < 0 ){ 774 nextTrack = playlist.list.length - 1; 775 } 776 setCurrentTrack(nextTrack); 777 778 779 } 780 781 function next(){ 782 clearTimeout(seekTimeOut) 783 var currentTrack = playlist.currentTrack; 784 var nextTrack = currentTrack + 1; 785 786 if ( nextTrack + 1 > playlist.list.length ){ 787 nextTrack = 0; 788 } 789 setCurrentTrack(nextTrack); 790 791 } 792 793 function getTime(){ 794 return artistWavesurfer.getCurrentTime() 795 } 796 797 return { 798 setPlayer : setPlayer, 799 setPlaylist : setPlaylist, 800 setCurrentTrack : setCurrentTrack, 801 playlist : playlist, 802 play : play 803 } 804 805}(jQuery); 806 807 808 809 810 811 812 813 814 815 816 817if (jQuery('.artist_player').length) { 818 IRON.artistPlayer.setPlayer() 819} 820 821IRON.continuousPlayer.setPlayer() 822 823IRON.players = []; 824jQuery('.iron-audioplayer').each(function(){ 825 826 var player = Object.create( IRON.audioPlayer ); 827 player.init(jQuery(this)); 828 829 IRON.players.push(player) 830}) 831 832 833 834
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.