Lecteur mp3 pour mirc

Contenu du snippet

C'est un lecteur mp3 que j'ai créé pour un challenge de scripting mIRC. LE but était de faire un lecteur mp3 uniquement avec des lignes de codes mIRC, en moins de 10Ko, et sans boites de dialogues.

Pour lancer le lecteur (une fois chargé comme "remote") : /mp3
Pour choisir le repertoire de vos mp3 : cliquez sur le petit "D" à gauche du lecteur
Pour enlever/remettre l'"always on top" : cliquez sur le "A"
Volume : cliquez ds la barre de volume à la position désirée.
Pour jouer un mp3 : double cliquez sur son nom dans la fenetre de playlist
Pour avancer dans une chanson : cliquez sur la barre de progression en dessous du lecteur.
Le reste consitant de bouton "play" "pause" etc, je ne vous ferai pas l'affront de vous expliquer leur fonctionement.
Tout les commentaires sont les bienvenus.

Source / Exemple :


alias mp3 { if ($window(@mp3)) return | w -opdk +eLf @Mp3 220 250 278 108 | grad1 | dr -rf $rgb(96,96,142) 1 12 13 247 36 | dr -rf $rgb(212,212,240) 1 14 15 243 32 | b_play 1 | b_pause 1 | b_stop 1 | unset %mp3_* |  tr | dr -fr $rgb(100,100,125) 1 167 60 79 8 | grr $int($calc($vol(wave) / 655.35 *0.75)) | dr -fr $rgb(170,170,205) 1 259 2 9 9 | dt -r $rgb(250,250,250) arial 10 261 -1 x | dt -r 6579300 times 10 194 48 - vol + | b | drawtext -r @mp3 $rgb(90,90,200) times 10 2 34  D | f | pl }
alias -l dr { drawrect $1 @mp3 $2- }
alias -l dl { drawline $1 @mp3 $2- }
alias -l df { drawfill $1 @mp3 $2- }
alias -l dt { drawtext $1 @mp3 $2- } 
;alias verif { w @tr $calc($window(@mp3).x) $calc($window(@mp3).y + 108) 278 30 | w @Mp3 $window(@mp3).x $window(@mp3).y 278 108 }
alias -l stop_mp3 { if (%mp3_play_b == play) { unset %mp3_* | splay -p stop | .timermp3 off | b_pause 1 | b_stop 3 | b_play 1 | df -r $rgb(212,212,240) $rgb(96,96,142) 20 17 | drawrect -fr @tr $rgb(100,100,125) 1 33 7 204 7 } }
alias -l grad1 { %mp3_c1 = 98 | %mp3_c3 = 160 | %mp3_posi1 = 100 | %mp3_posi2 = 300 | while (%mp3_posi2 >= 50) { dl -r $rgb(%mp3_c1,%mp3_c1,%mp3_c3) 2 0 %mp3_posi1 400 %mp3_posi2 | inc %mp3_c1  1.2 | inc %mp3_c3  0.8 | dec %mp3_posi1 2 | dec %mp3_posi2 2 } }
alias -l grad2 { %mp3_c1 = 98 | %mp3_c3 = 180 | %mp3_posi1 = 100 | %mp3_posi2 = 300 | while (%mp3_posi2 >= 50) { drawline -r @tr $rgb(%mp3_c1,%mp3_c1,%mp3_c3) 2 0 %mp3_posi1 400 %mp3_posi2 | inc %mp3_c1  1.2 | inc %mp3_c3  0.6 | dec %mp3_posi1 2 | dec %mp3_posi2 2 } }
alias -l a { if ($window(@mp3).ontop) { w -u @mp3 | w -u @tr } | else { w -o @mp3 | w -o @tr } | b }
alias -l b { if ($window(@mp3).ontop) dt -r $rgb(90,90,200) times 10 2 14 A | else dt -r $rgb(200,200,220) times 10 2 14 A }
alias -l f { if (%p) dt -r $rgb(90,90,200) times 14 181 75 Continue | else dt -r $rgb(200,200,220) times 14 181 75 Continue }
alias -l g { if (%p) unset %p | else %p = 1 | f }
alias -l affich_mp3 { df -r $rgb(212,212,240) $rgb(96,96,142) 20 17 | dr -r $rgb(42,42,142) 2 18 19 50 24 | .timermp3 -m 0 1000 dt -r $rgb(220,220,240) times 18 23 21 $!taille_mp3(pos) | dt -r $rgb(220,220,220) times 18 23 21 $taille_mp3(pos) | dt -cr $rgb(0,0,0) times 15 76 17 174 16 $remove($nopath(%mp3),.mp3) | dt -cr $rgb(0,0,0) times 10 77 33 176 11 $mp3(%mp3).sample khz - $mp3(%mp3).bitrate kbps  - $mp3(%mp3).mode | }
alias -l taille_mp3 { set %mp3_len $int($calc($inmp3.length / 1000)) | gr $int($calc($inmp3.pos / %mp3_tr)) | if (%npos == 2) %mp3_len = $int($calc(%mp3_len - ($inmp3.pos / 1000))) | else %mp3_len = $int($calc($inmp3.pos / 1000)) | set %mp3_min $int($calc(%mp3_len / 60)) | set %mp3_sec $calc(%mp3_len - (%mp3_min * 60)) | if (%mp3_min < 10) set %mp3_min 0 $+ %mp3_min | if (%mp3_sec < 10) set %mp3_sec 0 $+ %mp3_sec | set %mp3_len %mp3_min $+ : $+ %mp3_sec | dr -rf $rgb(142,142,200) 1 19 20 48 22 | return %mp3_len }  
alias -l st { if ($1) { inc %l | if (%l > %z) %l = 1 | %mp3 = $hget(P,%l) | play_mp3 } | else { dec %l | if (%l < 1) %l = %z | %mp3 = $hget(P,%l) | play_mp3 } | unset %mp3_pause_b |  b_pause 1 | sline @playlist %l }
alias -l play_mp3 { if ($isfile(%mp3)) { %mp3_play_b = play | splay -p %mp3 | %mp3_tr = $int($calc($inmp3.length / 200)) | affich_mp3 | b_stop 1 | b_play 3 | w -a @tr | w -a @mp3 } }
menu @mp3 { 
  mouse { if ($mouse.x >= 21) && ($mouse.x <= 63) && ($mouse.y >= 53) && ($mouse.y <= 94) { if (!%mp3_play_b) { %mp3_play_b = oqp | b_play 2 } }
    else { if (%mp3_play_b == oqp) { unset %mp3_play_b | b_play 1 } }
    if ($mouse.x >= 72) && ($mouse.x <= 103) && ($mouse.y >= 59) && ($mouse.y <= 88) {  if (%mp3_play_b == play) {  if (!%mp3_pause_b) { %mp3_pause_b = oqp | b_pause 2 } } }
    else { if (%mp3_pause_b == oqp) { unset %mp3_pause_b | b_pause 1 } }
    if ($mouse.x >= 111) && ($mouse.x <= 140) && ($mouse.y >= 59) && ($mouse.y <= 88) { if (!%mp3_stop_b) { if (%mp3_play_b == play) { %mp3_stop_b = oqp |  b_stop 2 } } }
  else { if (%mp3_stop_b == oqp) { unset %mp3_stop_b | b_stop 1 } } }
  sclick { if ($mouse.x >= 177) && ($mouse.x <= 234) && ($mouse.y >= 76) && ($mouse.y <= 90) g    
    if ($mouse.x <= 13) && ($mouse.y >= 14) && ($mouse.y <= 25)  a
    if ($mouse.x <= 13) && ($mouse.y >= 36) && ($mouse.y <= 47) { %dir_mp3 = $sdir(%dir_mp3,Choississez un répertoire) | pl  }
    if ($mouse.x >= 21) && ($mouse.x <= 63) && ($mouse.y >= 53) && ($mouse.y <= 94) { if (%mp3_pause_b == pause) { b_pause 1 | splay -p resume | unset %mp3_pause_b }  | else se }
    if ($mouse.x >= 72) && ($mouse.x <= 103) && ($mouse.y >= 59) && ($mouse.y <= 88) { if (%mp3_play_b == play) { if (%mp3_pause_b == pause) { splay -p resume | b_pause 2 | %mp3_pause_b = oqp } | else if (%mp3_pause_b != pause) { splay -p pause | b_pause 3 | %mp3_pause_b = pause } | } | }
    if ($mouse.x >= 111) && ($mouse.x <= 140) && ($mouse.y >= 59) && ($mouse.y <= 88) stop_mp3 
    if ($mouse.x >= 169) && ($mouse.x <= 244) && ($mouse.y >= 62) && ($mouse.y <= 66) { grr $calc($mouse.x - 169) | vol -p $int($calc(($mouse.x - 169) / 0.75 * 655.35)) }
    if ($mouse.x >= 259) && ($mouse.y <= 11) c
  mov $calc($mouse.dx -$window(@mp3).x) $calc($mouse.dy -$window(@mp3).y) }
  leave { if (%mp3_play_b == oqp)  b_play 1 | if (%mp3_pause_b == oqp)  b_pause 1 | if (%mp3_stop_b == oqp)  b_stop 1 }
  $iif(!%npos,$style(1),$style(0)) $+ Temps écoulé:%npos = 0
  $iif(%npos,$style(1),$style(0)) $+ Temps restant:%npos = 2 
}
on 1:close:@mp3:c 
alias -l c { .timermp3 off | splay -p stop | w -c @tr | w -c @mp3 | w -c @playlist }
on 1:MP3END: { if (%p) st 1 | else stop_mp3 }
alias -l w window $1-
alias -l mov { if ($window(@mp3)) { w @mp3 $calc($mouse.dx -$1) $calc($mouse.dy -$2) | w @tr $calc($window(@mp3).x) $calc($mouse.dy -$2 + 108) 278 30 | if ($mouse.key & 1) { .timermp -o 1 0 mov $1- } } }
alias -l b_play { if ($1 == 1)  { dr -rf $rgb(212,212,240) 1 21 53 42 41 | dl -r 16777215 2 22 54 22 93 | dl -r 16777215 2 22 54 62 54 | dl -r 1 2 62 54 62 93 | dl -r 1 2 22 93 62 93 } | if ($1 == 2) dr -rf $rgb(152,152,240) 1 23 55 38 37 | if ($1 == 3) { dr -rf $rgb(252,212,140) 1 21 53 42 41 | dl -r 1 2 22 54 22 93 | dl -r 1 2 22 54 62 54 | dl -r 16777215 2 62 54 62 93 | dl -r 16777215 2 22 93 62 93 } | dl -r 1 1 35 63 35 85 | dl -r 1 1 35 63 53 74 | dl -r 1 1 35 85 53 73 | df -r 1 1 38 70 }  
alias -l b_pause { if ($1 == 1) { dr -rf $rgb(212,212,240) 1 72 59 31 29 | dl -r 16777215 2 73 60 73 88 | dl -r 16777215 2 73 60 102 60 | dl -r 1 2 73 88 102 88 | dl -r 1 2 102 60 102 88 | dr -rf $rgb(21,21,24) 1 82 66 4 16 | dr -rf $rgb(21,21,24) 1 88 66 4 16 } | if ($1 == 2) { dr -rf $rgb(152,152,240) 1 74 61 27 26 | dl -r 16777215 2 73 60 73 88 | dl -r 16777215 2 73 60 102 60 | dl -r 1 2 73 88 102 88 | dl -r 1 2 102 60 102 88 | dr -rf $rgb(21,21,24) 1 82 66 4 16 dr -rf $rgb(21,21,24) 1 88 66 4 16 } | if ($1 == 3) { dr -rf $rgb(252,212,140) 1 72 59 31 29 | dl -r 1 2 73 60 73 88 | dl -r 1 2 73 60 102 60 | dl -r 16777215 2 73 88 102 88 | dl -r 16777215 2 102 60 102 88 | dr -rf $rgb(21,21,24) 1 83 67 4 16 | dr -rf $rgb(21,21,24) 1 89 67 4 16 } }
alias -l b_stop { if ($1 == 1)  { dr -rf $rgb(212,212,240) 1 111 59 31 29 | dl -r 16777215 2 112 60 112 88 | dl -r 16777215 2 112 60 141 60 | dl -r 1 2 112 88 141 88 | dl -r 1 2 141 60 141 88 | dr -rf $rgb(21,21,24) 1 119 67 14 14 } | if ($1 == 2) { dr -rf $rgb(152,152,240) 1 111 59 31 29 | dl -r 16777215 2 112 60 112 88 | dl -r 16777215 2 112 60 141 60 | dl -r 1 2 112 88 141 88 | dl -r 1 2 141 60 141 88 | dr -rf $rgb(21,21,24) 1 119 67 14 14 } | if ($1 == 3) { dr -rf $rgb(252,212,140) 1 111 59 31 29 | dl -r 1 2 112 60 112 88 | dl -r 1 2 112 60 141 60 | dl -r 16777215 2 112 88 141 88 | dl -r 16777215 2 141 60 141 88 | dr -rf $rgb(21,21,24) 1 120 68 14 14 } | }
alias -l b_bw { drawrect -fr @tr $rgb(212,212,240) 1 5 5 21 11 | drawline -r @tr 16777215 2 6 6 25 6 | drawline -r @tr 16777215 2 6 6 6 15 | drawline -r @tr 0 2 6 15 25 15 | drawline -r @tr 0 2 25 6 25 15 } 
alias -l b_fw { drawrect -fr @tr $rgb(212,212,240) 1 244 5 21 11 | drawline -r @tr 16777215 2 245 6 264 6 | drawline -r @tr 16777215 2 245 6 245 15 | drawline -r @tr 0 2 245 15 264 15 | drawline -r @tr 0 2 264 6 264 15 }
on 1:active:@mp3: if (!%a) w -r @tr 
alias -l pl { w -kl @playlist 500 0 278 258 times 12 $mircexe 14 | clear @playlist | if (!%dir_mp3)  || (!$isdir(%dir_mp3)) %dir_mp3 = $mp3dir | %l = 1 | %i = 1 | %z = $findfile(%dir_mp3,*.mp3,0) | if (%z) { if ($hget(P)) hfree P | hmake P %z | while (%i <= %z) { hadd P %i $findfile(%dir_mp3,*.mp3,%i) | aline -n @playlist $remove($nopath($hget(P,%i)),.mp3) | sline @playlist 1 | inc %i } | } | w -a @mp3 }
menu @playlist { 
dclick  se }
alias -l se { %l = $sline(@playlist,1).ln | %mp3 = $hget(P,%l) | play_mp3 }
On 1:close:@playlist:if ($window(@mp3)) .timerp -m 1 1 pl
alias -l tr { w -hpodk +eLf @tr 220 358 278 30 | w -a @tr | grad2 | drawrect -fr @tr $rgb(100,100,125) 1 32 6 206 9 | b_bw | b_fw | drawtext -r @tr 0 fixedys 11 11 3 < | drawtext -r @tr 0 fixedys 11 251 3 > }
alias -l gr { %o = $1 | drawrect -fr @tr $rgb(200,200,225) 1 35 9 %o 3 | drawrect -fr @tr $rgb(100,100,125) 1 $calc(35 + %o) 6 $calc(200 - (%o)) 9 | if ($2)  /splay -q seek $calc(%o * %mp3_tr) }
menu @tr {
sclick { if  ($mouse.x >= 6) && ($mouse.x <= 26) && ($mouse.y >= 6) && ($mouse.y <= 16) st | if ($mouse.x >= 245) && ($mouse.y >= 6) && ($mouse.x <= 265) && ($mouse.y <= 16) st 1 | if (%mp3_play_b == play) && ($mouse.x >= 35) && ($mouse.x <= 235) && ($mouse.y >= 7) && ($mouse.y <= 14)  gr $calc(($mouse.x - 35)) 1 } | }
alias -l grr { %o = $1 | dr -fr $rgb(200,200,225) 1 169 62 %o 4 | dr -fr $rgb(100,100,125) 1 $calc(169 + %o) 60 $calc(75 - %o) 8 }
on 1:load: { echo -s Script chargé tappez /mp3 pour lancer le lecteur. | set %p 1 }

Conclusion :


Il n'y aura pas de nouvelles version, il s'agissait juste d'une participation à un concours. Mais j'espère qu'il vous plaira comme il est.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.