Lecteur mp3 pour mirc

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 026 fois - Téléchargée 26 fois

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

Ajouter un commentaire

Commentaires

Messages postés
217
Date d'inscription
dimanche 17 juin 2007
Statut
Membre
Dernière intervention
13 février 2012

Très bien y manque juste un petit truc qui serais le bienvenue. Un menu ^_^
Messages postés
11
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
28 février 2008

je viens de tester ce lecteur mp3.très facile à installer et à lancer. petit, super design,le fond bleu-violet degradé se marie à merveille avec mon script, et le bouton orange parfait . la playlist se range sur le coté , et on peut mettre le lecteur en arriere-plan(cliker sur le A du lecteur, puis un c lic sur le script). au final , un lecteur génial , exactement ce que j'imaginais avoir depuis longtemps. Merci EpsiloN. UNE seule chose qui me manque: avoir un affichage du titre joué sur un ou plusieurs salons...qui pourrait me dire comment faire ? Merci d'avance.
Messages postés
2
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
21 septembre 2005

franchement, j'ai essayer de trovuer plusieur mp3 qui marche queunini, quand j'ai vu ton mp3 j'le savasi qu'il allait marcher et il marche j'suis super content! il y a de koi de dormir en bonne humeur ;) merci 11/10
Messages postés
3
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 août 2005

ah voilà ca marchait pas avec FireFox, avec ie ça marche nikel, dsl ^^
Messages postés
3
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
20 août 2005

SOS j'arrive pas à c/C une source sans prendre les numéros de chaque ligne à gauche, c'est normal ? :/
Afficher les 33 commentaires

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.