JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Player MP3 Ven 20 Nov 2015 - 14:19 | |
| Bien calme en ce moment, mais bon, c'est pas facile à digérer. Un petit player tout simple: - Code:
-
LABEL Chr, Jouer, Passer, Arret, Debut DIM r$,f$,i%,j%,a$,ff%,pa%,d%,du%,tt%,t%,q$ q$ = CHR$(34) ff% = 0 pa% = 0
BORDER_SMALL 0: WIDTH 0,640: HEIGHT 0,500: FONT_BOLD 0: FONT_NAME 0,"Arial" COLOR 0,190,255,255: CAPTION 0," - Player MP3 -" ALPHA 1: TOP 1,3: CAPTION 1,"Répertoire des MP3 :" EDIT 2: TOP 2,0: LEFT 2,120: WIDTH 2,WIDTH(0)-150: TEXT 2," (clic)": ON_CLICK 2,Chr ALPHA 6: TOP 6,28: LEFT 6,30: CAPTION 6,"Durée: Cliquer le morceau de départ, puis" BUTTON 7: TOP 7,TOP(6)-6: LEFT 7,LEFT(6)+250: CAPTION 7,"Jouer" ON_CLICK 7,Jouer BUTTON 8: TOP 8,TOP(7): LEFT 8,LEFT(7)+80: CAPTION 8,"Passer": ON_CLICK 8,Passer BUTTON 9: TOP 9,TOP(7): LEFT 9,LEFT(8)+80: CAPTION 9,"STOP": ON_CLICK 9,Arret MEMO 10: WIDTH 10,600: HIDE 10 LIST 11: TOP 11,47: LEFT 11,0: WIDTH 11,20: HEIGHT 11,HEIGHT(0)-138 LIST 12: TOP 12,TOP(11): LEFT 12,WIDTH(11): WIDTH 12,50: HEIGHT 12,HEIGHT(11) LIST 13: TOP 13,TOP(11): LEFT 13,WIDTH(11)+WIDTH(12): WIDTH 13,WIDTH(0)-90: HEIGHT 13,HEIGHT(11) ON_CLICK 13,Debut EDIT 16: TOP 16,TOP(11)+HEIGHT(11)+1: LEFT 16,0: WIDTH 16,WIDTH(0)-20: COLOR 16,255,255,0 SOUND 20 OPEN_DIALOG 25 EDIT 29: TOP 29,HEIGHT(0)-68: WIDTH 29,35: TEXT 29,"00:00" PROGRESS_BAR 30: TOP 30,TOP(29)+3: LEFT 30,WIDTH(29): WIDTH 30,WIDTH(0)-92 EDIT 31: TOP 31,TOP(29): LEFT 31,WIDTH(29)+WIDTH(30): WIDTH 31,WIDTH(29) END ' ============================================================================== Chr: a$ = FILE_NAME$(25): IF LEN(a$)<4 THEN RETURN r$ = FILE_EXTRACT_PATH$(a$): TEXT 2,r$ EXECUTE_WAIT "cmd.exe /c DIR /B "+q$+r$+"*.mp3"+q$+" | clip" CLEAR 10: CLEAR 11: CLEAR 12: CLEAR 13: CLIPBOARD_PASTE 10 FOR i% = 1 TO COUNT(10) ITEM_ADD 11,RIGHT$(" "+STR$(i%),2) ITEM_ADD 13,ITEM_READ$(10,i%) f$ = r$+ITEM_READ$(10,i%): DureeMp3(f$) a$ = CLIPBOARD_STRING_PASTE$ ITEM_ADD 12,TRIM$(a$) NEXT i% RETURN ' ============================================================================== Debut: d% = ITEM_INDEX(13) TEXT 16,"N° "+STR$(d%)+": "+ITEM_READ$(13,d%) TEXT 31,RIGHT$(ITEM_READ$(12,d%),5) RETURN ' ============================================================================== Jouer: IF d% = 0 THEN d% = 1 FOR i% = d% TO COUNT(13) f$ = ITEM_READ$(13,i%) FILE_LOAD 20,chr$(34)+r$+f$+chr$(34) a$ = ITEM_READ$(12,i%): ' durée TEXT 16,"N° "+STR$(i%)+": "+f$ TEXT 31,RIGHT$(a$,5) du%=3600*VAL(LEFT$(a$,2))+60*VAL(MID$(a$,4,2))+VAL(RIGHT$(a$,2)): ' en secondes a$ = TIME$ j%=3600*VAL(LEFT$(a$,2))+60*VAL(MID$(a$,4,2))+VAL(RIGHT$(a$,2)): ' heure début tt% = j%+du% PLAY 20 MAX 30,du%: POSITION 30,0 WHILE t% < tt% PAUSE 500 IF ff% = 1 OR pa% = 1 THEN DELETE 20: SOUND 20: EXIT_WHILE a$ = TIME$ t% = 3600*VAL(LEFT$(a$,2))+60*VAL(MID$(a$,4,2))+VAL(RIGHT$(a$,2)) POSITION 30,t%-j% END_WHILE IF ff% = 1 THEN POSITION 30,0: EXIT_FOR: ' arrêt immédiat... pa% = 0 NEXT i% ff% = 0: pa% = 0 RETURN ' ============================================================================== Passer: ' sauter le morceau en cours (passer au suivant) pa% = 1 RETURN ' ============================================================================== Arret: ' arrêt immédiat sans reprise possible à l'endroit de l'arrêt ff% = 1 RETURN ' ============================================================================== SUB DureeMp3(f$) ' durée du fichier mp3 f$, rendue dans le presse-papier ('hh:mm:ss') DIM_LOCAL q$,scr$ q$ = CHR$(34) scr$ = "C:\TEMP\Duree.vbs" FILE_OPEN_WRITE 9,scr$ FILE_WRITELN 9, "FileName = wscript.arguments (0)" FILE_WRITELN 9, "with CreateObject("+q$+"Scripting.FileSystemObject"+q$+").GetFile(FileName)" FILE_WRITELN 9, " Foldername = .ParentFolder" FILE_WRITELN 9, " FileName = .Name" FILE_WRITELN 9, "End With" FILE_WRITELN 9, "with CreateObject("+q$+"Shell.Application"+q$+").Namespace(Foldername)" FILE_WRITELN 9, " wsh.echo .GetDetailsOf(.Parsename(FileName), 27)" FILE_WRITELN 9, "end with" FILE_CLOSE 9 EXECUTE_WAIT "cmd.exe /c cscript.exe "+scr$+" "+q$+f$+q$+" | clip" FILE_DELETE scr$ END_SUB ' ============================================================================== - cliquer sur l'édit du haut et cliquer un fichier quelconque du répertoire choisi -> la liste des mp3 du répertoire s'affiche au-dessous, avec leur durée individuelle - cliquer dans la liste le morceau de départ, puis cliquer 'Jouer': le player lira la liste à partir de là. Le Progress_Bar en bas indique l'évolution dans le morceau en cours. Le bouton 'Passer' permet de stopper le morceau en cours d'exécution et de passer automatiquement au suivant. Bouton 'STOP': pour stopper à n'importe quel moment en cours d'exécution. J'ai utilisé pour ça l'astuce géniale de Klaus ( https://panoramic.1fr1.net/t2384-peut-on-arreter-la-commande-play?highlight=PLAY ) qui consiste à faire Delete de l'objet Sound et à le recréer aussitôt: l'exécution s'arrête immédiatement. Mais (il y a un mais...), on ne peut pas reprendre en cours là où on s'est arrêté, ça je ne sais pas faire, donc pas de fonction Pause. Il faut refaire 'Jouer' qui reprend au début d'un morceau. Si on veut agrandir la fenêtre en hauteur, il suffit de modifier le Height 0, le reste suivra. PS: je ne me suis occupé que des fichiers MP3, j'ai laissé de côté les fichiers WAV que Play sait aussi lire. Et j'ai modifié un peu les marges, j'ai laissé de la place en bas pour les windows huitards. | |
|