FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF_dll - nouvelles versions
par Yannick Aujourd'hui à 23:30

» Synedit Parameters
par Yannick Aujourd'hui à 23:26

» Un bug avec USER_EVENT ?
par Yannick Aujourd'hui à 23:16

» Concours de Morpions
par Froggy One Aujourd'hui à 19:30

» Bienvenue à Irikte
par papydall Aujourd'hui à 16:59

» Comment changer le graphisme d’un menu
par Yannick Aujourd'hui à 14:53

» LIBRARY COMMAND FUNCTION
par Jean Claude Aujourd'hui à 13:38

» OBJECT_PARENT NE FONCTIONNE PLUS ?! (RESOLU)
par Jack Aujourd'hui à 12:40

» Menu personalisé avec icones et menu contextuel
par Yannick Aujourd'hui à 12:10

» Doublon - Désolé !
par Laurent (Minibug) Aujourd'hui à 11:55

» Mac OS X sierra
par Irikte Aujourd'hui à 10:01

» Recherche de traductions de mots (@Klaus).
par Pedro Alvarez Hier à 20:34

» Problème avec SendStringAsText.
par Pedro Alvarez Hier à 20:32

» Version instantanée V 0.9.28i10 du 24/06/2017
par Yannick Hier à 18:19

» Mais qui a le focus ?
par Jack Hier à 16:35

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Un lecteur MP3

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Un lecteur MP3   Jeu 14 Juil 2016 - 17:28

Encore un, assez simple, sans ressources externes.
Pour ceux qui ne sont pas encore partis en vacances (c'est un peu le désert ces jours-ci...).

On présuppose un répertoire principal réservé aux fichiers mp3 (à préciser, ici C:\MP3\), avec éventuellement des sous-répertoires par catégorie.
Le programme affiche la liste des mp3 dans le répertoire choisi. On clique dans la liste ceux qu'on veut écouter (ou tout), et on lance la lecture.
Il est possible à tout moment d'interrompre l'écoute en cours, définitivement, ou pour passer au suivant.
(perso j'en ai fait un exécutable qui est sur le bureau: ).
Code:
'                            == LECTEUR MP3 ==
LABEL Fin,Listf,Chr,Chf,Seldes,Jouer,Plusun,Arret
DIM rtmp$,r$,rc$,f$,q$,d%,i%,j%,k%,r%,m%,s%,a$,pr$,stp%,bs$
q$ = CHR$(34)
bs$ = CHR$(92): ' sinon, backslash bouffé par le forum !
rtmp$ = "C:\TEMP"+bs$: ' répertoire de travail (fichiers temporaires)
r$ = "C:\MP3"+bs$: ' <===================  Répertoire principal des MP3
rc$ = r$

WIDTH 0,760: HEIGHT 0,840: BORDER_SMALL 0: FONT_NAME 0,"Arial": FONT_SIZE 0,10
    COLOR 0,90,90,90
MEMO 100: WIDTH 100,600: HIDE 100
LIST 1: TOP 1,25: WIDTH 1,180: HEIGHT 1,HEIGHT(0)-140: FONT_BOLD 1
LIST 4: TOP 4,TOP(1): LEFT 4,LEFT(1)+WIDTH(1)+3: WIDTH 4,15: HEIGHT 4,HEIGHT(1)
    FONT_BOLD 4
LIST 3: TOP 3,TOP(1): LEFT 3,LEFT(4)+WIDTH(4)+1: WIDTH 3,58: HEIGHT 3,HEIGHT(1)
LIST 2: TOP 2,TOP(1): LEFT 2,LEFT(3)+WIDTH(3)+1: WIDTH 2,480: HEIGHT 2,HEIGHT(1)
    ON_CLICK 1,Chr: ON_CLICK 2,Chf: ON_CLICK 4,Chf
ALPHA 10: TOP 10,5: LEFT 10,5: CAPTION 10,"Répertoire: "+r$
ALPHA 11: TOP 11,TOP(10): LEFT 11,LEFT(3)+10: CAPTION 11,"Durée:"
ALPHA 12: TOP 12,TOP(10): LEFT 12,LEFT(2)+10: CAPTION 12,"Répertoire : "+r$
ALPHA 13: TOP 13,HEIGHT(0)-60: LEFT 13,10
    CAPTION 13,"Clic un ou plusieurs morceau(x) pour sélection."
    FOR i% = 10 TO 13: FONT_BOLD i%: FONT_COLOR i%,255,255,255: NEXT i%

EDIT 19: TOP 19,TOP(1)+HEIGHT(1)+2: LEFT 19,WIDTH(0)/2-300: WIDTH 19,600
    FONT_BOLD 19: FONT_COLOR 19,0,0,255
PROGRESS_BAR 20: TOP 20,TOP(1)+HEIGHT(1)+30: WIDTH 20,WIDTH(0)-70
EDIT 21: TOP 21,TOP(20)-4: LEFT 21,WIDTH(20)+3: WIDTH 21,45: FONT_BOLD 21
    COLOR 21,255,255,0
   
BUTTON 35: TOP 35,HEIGHT(0)-60: LEFT 35,WIDTH(0)-420: CAPTION 35,"Sélect.Tout"
    FONT_BOLD 35: ON_CLICK 35,Seldes
BUTTON 36: TOP 36,TOP(35): LEFT 36,LEFT(35)+80: CAPTION 36,"Désel.Tout"
    FONT_BOLD 36: ON_CLICK 36,Seldes
BUTTON 40: TOP 40,TOP(35): WIDTH 40,48: LEFT 40,LEFT(36)+80: CAPTION 40,"Jouer"
    ON_CLICK 40,Jouer
BUTTON 41: TOP 41,TOP(35): WIDTH 41,48: LEFT 41,LEFT(40)+53: CAPTION 41,"+1"
    ON_CLICK 41,Plusun
BUTTON 42: TOP 42,TOP(35): WIDTH 42,48: LEFT 42,LEFT(41)+52: CAPTION 42,"Stop"
    ON_CLICK 42,Arret
BUTTON 50: TOP 50,TOP(35): WIDTH 50,55: LEFT 50,WIDTH(0)-76: CAPTION 50,"Quitter"
    ON_CLICK 50,Fin
    FONT_BOLD 40: FONT_BOLD 42: FONT_BOLD 50
   
SOUND 80

EXECUTE_WAIT "cmd.exe /c DIR /A:D /B "+q$+r$+q$+" | clip"
CLEAR 100: CLIPBOARD_PASTE 100
ITEM_ADD 1,r$: ' répertoire principal des MP3
FOR i% = 1 TO COUNT(100)
    ITEM_ADD 1,ITEM_READ$(100,i%)
NEXT i%
GOSUB Listf
' ==============================================================================
END: ' =========================================================================
' ==============================================================================
Fin:
TERMINATE
' ==============================================================================
Listf:
' Liste des mp3 du répertoire choisi
CAPTION 12,"Répertoire : "+rc$
EXECUTE_WAIT "cmd.exe /c DIR /B "+q$+rc$+"*.mp3"+q$+" | clip"
CLEAR 100: CLIPBOARD_PASTE 100: CLEAR 2: CLEAR 3: CLEAR 4
IF COUNT(100) > 0
    FOR i% = 1 TO COUNT(100)
        a$ = ITEM_READ$(100,i%)
        ITEM_ADD 2,a$: ITEM_ADD 4," "
        f$ = rc$+a$: DureeMp3(f$): ITEM_ADD 3,CLIPBOARD_STRING_PASTE$
    NEXT i%
END_IF
RETURN
' ==============================================================================
Chr:
' Choix d'un répertoire
IF ITEM_INDEX(1) = 1
    rc$ = r$: ' répertoire principal
ELSE
    rc$ = r$+ITEM_INDEX$(1)+bs$: ' sous-répertoire
END_IF
GOSUB Listf
RETURN
' ==============================================================================
Chf:
' Choix d'un fichier (morceau mp3)
j% = NUMBER_CLICK: i% = ITEM_INDEX(j%)
a$ = ITEM_READ$(4,i%)
IF a$ <> "X"
    ITEM_DELETE 4,i%: ITEM_INSERT 4,i%,"X"
ELSE
    ITEM_DELETE 4,i%: ITEM_INSERT 4,i%," "
END_IF
a$ = ITEM_READ$(4,i%)
RETURN
' ==============================================================================
Seldes:
' Sélection ou désélection d'un fichier, en bascule
j% = NUMBER_CLICK
FOR i% = 1 TO COUNT(4)
    ITEM_DELETE 4,i%
    IF j% = 35
        ITEM_INSERT 4,i%,"X"
    ELSE
        ITEM_INSERT 4,i%," "
    END_IF
NEXT i%
RETURN
' ==============================================================================
Jouer:
stp% = 0
FOR i% = 1 TO COUNT(2)
    IF ITEM_READ$(4,i%) = "X"
        a$ = ITEM_READ$(4,i%)
        f$ = rc$+ITEM_READ$(2,i%): TEXT 19,ITEM_READ$(2,i%)
        FILE_LOAD 80,f$: PLAY 80
        a$ = TRIM$(ITEM_READ$(3,i%))
        d%=VAL(RIGHT$(a$,2))+60*VAL(MID$(a$,4,2))+3600*VAL(LEFT$(a$,2)): ' durée, secondes
        MIN 20,0: MAX 20,d%: POSITION 20,0
        k% = NUMBER_TICKS: j% = k%+d%*1000: r% = k%
        WHILE k%<j%
            PAUSE 1000
            k% = NUMBER_TICKS: d% = INT((k%-r%)/1000): ' écoulé, en secondes
            POSITION 20,d%
            m% = INT(d%/60): s% = d%-60*m%
            TEXT 21,RIGHT$("0"+STR$(m%),2)+":"+RIGHT$("0"+STR$(s%),2)
            IF stp% > 0 THEN EXIT_WHILE: ' =1: arrêt, =2: suivant
        END_WHILE
        IF stp% = 1 THEN EXIT_FOR
        stp% = 0
    END_IF
NEXT i%
TEXT 19,"": TEXT 21,"": POSITION 20,0
IF stp% = 0 THEN GOSUB Arret
stp% = 0
RETURN
' ==============================================================================
Plusun:
' Interruption de l'actuel, passage au suivant
DELETE 80: SOUND 80
stp% = 2
RETURN
' ==============================================================================
Arret:
' Arrêt total
DELETE 80: SOUND 80: ' pour stopper la lecture en cours
stp% = 1
RETURN
' ==============================================================================
SUB DureeMp3(f$)
' durée du fichier mp3 f$, rendue dans le presse-papier
DIM_LOCAL q$,scr$
q$ = CHR$(34)
scr$ = rtmp$+"Duree.vbs": ' fichier script vbs, temporaire
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
' ==============================================================================

21h12 édité, à cause du backslash bouffé par le forum !


Dernière édition par JL35 le Jeu 14 Juil 2016 - 23:38, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2351
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 18:58

Bonsoir JL35 !

J'ai voulu testé ton programme mais malheureusement, je n'ai aucun fichier qui apparaît.

Après avoir préalablement choisi les dossiers 'temp' et 'mp3' je lance le programme.
J'ai bien tous mes albums (dossiers) sur la partie de gauche, mais lorsque je clique sur un des dossiers je vois très furtivement une fenêtre DOS indiquant fichier introuvable et elle disparaît immédiatement !
Et aucun fichier n'est visible à droite.

Pas de bugs mais pas de musique non plus. Dommage !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 19:24

Bonjour Minibug,
ça c'est curieux, ce sont bien des fichiers mp3 (unique format supporté) ?
Chez moi j'ai quelques fichiers mp3 dans le répertoire C:\MP3\, et des sous-répertoires qui contiennent également des mp3 classés par catégories...
Le programme affiche d'entrée ceux qui sont dans le répertoire principal, et la liste des sous-répertoires:

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2351
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 20:24

Eh bien pas chez moi ! tant pis... silent Suspect drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 20:36

Tout de même, ça m'intrigue...
Tu devrais mettre un MESSAGE rc$ après la ligne 80 (juste avant le gosub Listf) pour voir si tu as bien le nom complet du répertoire cliqué...
La liste des fichier c'est un simple 'DIR' msdos.
J'y pense, j'espère que le reroutage du DIR vers 'clip' fonctionne chez toi (pas avant Windows 7 je crois), sinon il faudrait envoyer le résultat dans un fichier temporaire au lieu du clipboard, ce qui est très simple à faire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5387
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 21:23

@JL35
Pour la mille et unième fois tu t’es tombé dans le piège !
Tu sais parfaitement que le forum est avide du caractère back slash (\).
Il te l’a bouffé en ligne 79.
Chez moi, c’est le même constat que celui de Minibug.
Le caption indique : Répertoire : C:\MP3 et non … C :\MP3\ comme chez toi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Laurent (Minibug)

avatar

Nombre de messages : 2351
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 21:39

Bonsoir papydall !
Même en rajoutant le "\" manquant en ligne 79 cela ne change rien. Aucun fichier MP3 ne s'affiche sur la droite.

@JL35 : J'ai mis le message en ligne 80 et j'ai bien le chemin complet avec "\" à la fin.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 22:06

@papydall
Enfer et Damnation ! tu as raison, il m'a encore bouffé le backslash ce saligaud !
Et pas seulement ligne 79, lignes 5 et 6 également ! et je me fais toujours avoir, zut alors, je proteste avec la dernière énergie, le forum n'a pas à intervenir entre les balises code !!! Evil or Very Mad

Bon, je remets une version avec le backslash codé -> variable bs$ = CHR$(92).

@Minibug
Tu as bien le backslash à la fin, mais tu l'as bien au milieu aussi ? parce que tel qu'était le code pris sur le forum ça ne marchait pas...

Ce que tu pourrais vérifier:
- mettre dans le s/p Listf juste après l'Execute_Wait de la ligne 64
Code:
MESSAGE "cmd.exe /c DIR /B "+q$+rc$+"*.mp3"+q$+" | clip"
pour voir si les paramètres étaient corrects.
- pendant l'affichage du Message, lancer le Notepad et y faire un coller, pour voir s'il y a bien la résultat du DIR dans le presse-papier.

Je précise, il y a un premier 'DIR' ligne 48 qui donne une fois pour toutes la liste des sous-répertoires qui sera affichée à gauche:
EXECUTE_WAIT "cmd.exe /c DIR /A:D /B "+q$+r$+q$+" | clip"
->>>> il est probable qu'ici tu n'avais pas le backslash à la fin de r$ ! <<<<<<<<<
Dans un premier temps, n'est affichée à droite que la liste des mp3 qui sont directement sous le répertoire principal.
Il faudra cliquer ensuite dans la liste des sous-répertoire pour afficher leur contenu.
et on appelle ensuite le s/p Listf pour avoir la liste des mp3 du répertoire principal ( C:\MP3\ ).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2351
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 23:34

Bon, il y a de l'amélioration mais j'ai une erreur en ligne 155 dès qu'il lit le 1er fichier du dossier.



Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Un lecteur MP3   Jeu 14 Juil 2016 - 23:42

Tu as pris la dernière version ? l'erreur est dans le nom du fichier script, c'est comme si tu n'avais pas l'antislash dans le nom du répertoire de travail rtmp$ = C:\TEMP\ , qui était bien escamoté également par le forum.

Le script vbs doit s'appeler C:\TEMP\Duree.vbs (et non C:\TEMPDuree.vbs)
Au fait, tu as bien un répertoire C:\TEMP\ ? sinon il faut le créer, ou quelque chose d'équivalent en adaptant la variable rtmp$.

Bonne nuit ! Sleep
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2351
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un lecteur MP3   Ven 15 Juil 2016 - 0:28

Ça avance... mais maintenant j'ai un autre problème. Au lieu d'indiquer la durée j'ai 'Microsoft'

Et à l'appui de la touche 'Jouer' un message apparaît :

(29) Not correct arithmetic expression : Error in funtion. Line 118

La lecture démarre malgré tout. et dès que je ferme le message d'erreur tout s’arrête bien sûr.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5387
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Un lecteur MP3   Ven 15 Juil 2016 - 3:53

Maintenant tout est OK
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Un lecteur MP3   Ven 15 Juil 2016 - 11:12

Bonjour à tous !
@papydall
évidemment, si on n'a que le backslash à se partager, on n'est pas très riches...

@Minibug,
Manifestement tu as un problème avec la récupération de la durée du mp3, que tu devrais récupérer dans le List 3 sous la forme ascii 'hh:mm:ss', et toi à la place tu as 'Microsoft' ???
(la ligne 118 lit la valeur Ascii pour chaque fichier dans le List 3 et la convertit en valeur numérique: nombre de secondes. Et dans ton cas, évidemment, avec la valeur lue ça part en erreur).

C'est la sub DureeMp3() qui calcule la durée avec un script vbs et la renvoie dans le presse-papier sous la forme d'une chaîne hh:mm:ss, c'est là-dedans qu'il faudrait regarder, mais sans connaître ta configuration c'est pas facile.
Manifestement, dans ton cas ça te renvoie 'Microsoft' ...  scratch
Première chose, vérifier que le paramètre envoyé à la sub est bien un nom de fichier correct (path complet).

La durée est une donnée essentielle dans le programme, pour enchaîner les morceaux, gérer le progress-bar etc.
Il y a d'autres moyens pour obtenir la durée, mais externes (ffmpeg entre autres), c'est pour ça que j'ai privilégié celui-ci.
J'ai essayé de récupérer la durée en lisant directement dans le fichier, mais elle n'est en clair nulle part, il faut la calculer à partir d'autres données plutôt compliquées.

Vérifie déjà que le nom du fichier est correct.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

Nombre de messages : 2351
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Un lecteur MP3   Ven 15 Juil 2016 - 23:37

Merci JL35, je crois que je vais en rester là.
Tant pis pour la musique, je continuerai d'utiliser Winamp. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Un lecteur MP3   Sam 16 Juil 2016 - 0:50

C'est dommage quand même de ne pas avoir le fin mot de l'affaire ! mais bon, il faut un minimum de motivation, et si tu as une alternative qui te convient mieux...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Un lecteur MP3   

Revenir en haut Aller en bas
 
Un lecteur MP3
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» besion d'aide language html lecteur de musique !! (Résolu)
» Récupérer le type du lecteur sélèctionné .
» Problème d'écran sur lecteur dvd portable ?
» [Résolu] Lecteur CD et graveur DVD disparus
» Sélecteur de couleur

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: