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