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
» TourD Version 2
par Minibug Aujourd'hui à 1:50

» La métamatière et le peuple
par JL35 Hier à 21:18

» Capture d'une zone de l'écran total
par JL35 Hier à 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Hier à 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

» KGF_dll - nouvelles versions
par Klaus Mer 15 Nov 2017 - 2:08

» Analyser un code Panoramic
par JL35 Lun 13 Nov 2017 - 18:38

» Un bonjour en passant...
par Minibug Dim 12 Nov 2017 - 19:57

» mise a jour calculatrice
par joeeee2017 Dim 12 Nov 2017 - 4:20

» comment accèder à l'heure et à la date d'un fichier
par Klaus Sam 11 Nov 2017 - 0:53

» Compilateur FBPano
par Jicehel Mer 8 Nov 2017 - 15:22

» Mon adresse e-mail
par treehouse Mer 8 Nov 2017 - 14:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 lecteur MP3 aléatoire

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Francis-mr



Nombre de messages : 162
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: lecteur MP3 aléatoire   Jeu 9 Avr 2015 - 9:55

Bonjour,

Voulant faire un lecteur de fichiers MP3 aléatoire, je me suis heurté au problème de connaitre la durée du fichier MP3, comme d’autre avant moi.
En cherchant une solution j’ai trouvé sur internet un fichier Excel qui permet de collecter les informations de fichier. Je l’ai donc adapté à mes besoins, pour créer un fichier texte listant les fichiers avec leur durée.
J’ai mis ce fichier « ListeurMP3.xls » dans mon espace MyDrive.

Ci-dessous, le code de mon lecteur à mettre dans le répertoire de vos fichiers MP3 avec la liste créée.
Code:
dim F%, c%, s%     :Label JOU

width 0,500  :height 0,50  :left 0,screen_x-520  :top 0,20  :border_small 0
Caption 0,"Lecture aléatoire de fichier MP3"  :font_bold 0  :on_click 0,JOU
dlist 1   :sound 2   :timer 3
if file_exists("_ListeMP3.txt")=0 then message "Manque Liste MP3" :terminate
file_load 1,"_ListeMP3.txt"
c%=count(1)
gosub JOU
end

JOU:
  cls   :F%=int(rnd(c%))
  if odd(F%)=0 then F%=F%-1
  if file_exists(item_read$(1,F%))=0 then print "Manque fichier: "+item_read$(1,F%) :end
  print left$(item_read$(1,F%),len(item_read$(1,F%))-4)
  print_locate 450,0  :print item_read$(1,F%+1)
  file_load 2,item_read$(1,F%)  :play 2
  s%=(val(left$(item_read$(1,F%+1),2))*60)+val(right$(item_read$(1,F%+1),2))
  timer_interval 3,s%*1000
  on_timer 3,JOU
  return

PS : Si quelqu’un veut transcrire le code du ListeurMP3 en Panoramic, je suis preneur.
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 9 Avr 2015 - 15:17

Tout un travail avait été fait il y a quelques temps sur les fichiers MP3.
J' avais posté deux programmes :

MP3 Cover Extractor
MP3 Cleaner

Une partie de la communauté avait participé aux recherches et donc la création
de ces deux programmes. 
Peut-être peux tu t' inspirer de nos discussions pour ton programme ...

les sujets sont là :
http://panoramic.free-boards.net/t3833-mp3-cover-extractor
http://panoramic.free-boards.net/t3825-mp3-cleaner
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 162
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: lecteur MP3 aléatoire   Jeu 9 Avr 2015 - 18:05

@ygeronimi
Dans aucun des deux sujets tu n'extrais la durée du MP3 si ne m'abuse ?
De plus, le cleaner plante chez moi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 9 Avr 2015 - 20:16

Je ne te dis pas de prendre les codes mais
les discussions qui ont eu lieu sur ses sujets peuvent t' apporter des infos
sur ces fameux fichiers.
Il y en a eu d' autres mais je ne les retrouve pas... Rolling Eyes
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: lecteur MP3 aléatoire   Jeu 9 Avr 2015 - 22:26

Le format mp3 n'est pas quelque chose de simple, avec toutes ses variantes, comme on avait pu le voir, n'est-ce pas ygeronimi, et ça me paraît bien compliqué d'extraire la durée, qui n'est inscrite nulle part dans le fichier, mais qu'il faut calculer à partir des autres données.

Je préconiserais plutôt d'utiliser ffmpeg, qui est le couteau suisse audio/vidéo, et qui fait les calculs lui-même. Et qui doit exister sur la plupart des pc puisqu'il est livré avec la plupart des programmes qui font appel à de l'audio ou vidéo (conversions, etc.).  Chez moi je dois l'avoir en 3 ou 4 exemplaires, au moins.
Ou sinon on trouve facilement à le télécharger.
Et ensuite il suffit de faire:
Code:
EXECUTE_WAIT ...\ffmpeg.exe -i Monfichier.mp3 2>&1 | grep Duration | clip
pour avoir le résultat dans le presse-papier (récup: duree$ = CLIPBOARD_STRING_PASTE$) sous la forme suivante:
Citation :
 Duration: 00:09:21.19, start: 0.025057, bitrate: 128 kb/s
- le 2>&1 c'est pour renvoyer la sortie sur la sortie standard, au lieu de la sortie erreurs qui est implicite.
- le grep Duration c'est pour ne récupérer que la donnée durée (Duration) parmi toutes les autres infos renvoyées.

Si on veut vraiment se plonger dans le format mp3: http://mgc99.free.fr/InfoMP3.html
Bon courage !  Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 10 Avr 2015 - 0:41

Il y a bien un Tag pour la durée mais il est variable 
il peut se faire appeler "TIME" ou "TLE"
Cela fait deux passes de lecture pour le trouver.
Il ne vaut mieux pas que le fichier MP3 soit un concert complet de plus d' une heure... Laughing
Quoi que, tu peux limiter la recherche de l' octet 0 aux octets marqués 255,251.

Bon, j' arrête le chinois... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 162
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 10:33

Bonjour et merci pour vos réponses.

Je me suis rendu compte que l’extraction de la durée d’un fichier MP3 n’est effectivement pas simple en regardant les discussions
avec la commande PLAY et en cherchant sur le net ou j’étais tombé sur le lien donné par JL35.

C’est pour cela qu’avec mon petit niveau j’ai trouvé plus facile d’adapter un fichier Excel existant (mp3filelister.xls).
Celui-ci  exploite "shell32.dll" et il est possible d’extraire toutes les infos en donnant leurs numéros.
Exemple :  n°14 l’album, n°16 le genre, n°20 l’artiste, n°21 le titre, n°27 la durée, etc…

Il est peut-être faisable d’arriver au même résultat en utilisant "shell32.dll" avec Panoramic, mais cela n’est pas dans mes capacités.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 10 Avr 2015 - 13:43

Pourrait tu mettre ce fameux fichier xls sur un webdav ou en téléchargement quelque part ?
Pour savoir si c' est faisable, il faudrait d' abord voir le fichier en question et l' appel à cette dll.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 162
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 14:25

J'ai mis sur mon webdav dans le répertoire "LecteurMP3" le fichier "mp3filelister.xls" de John Walkenbach et ma version simplifiée "ListeurMP3.xls"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
JL35



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

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 15:56

Tiens Francis-mr, j'ai un petit cadeau pour toi: durée d'une musique mp3 sans ressources externes, sous forme de sub qui rend la durée sous la forme hh:mm:ss, avec un exemple d'appel:
Code:
DIM f$,a$
f$ = "Z:\Allegro.mp3": ' ... à adapter...
DureeMp3(f$)
a$ = CLIPBOARD_STRING_PASTE$: PRINT a$
END

SUB DureeMp3(f$)
' durée du fichier mp3 f$, rendue dans le presse-papier sous la forme 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

NB Je suis sous W7, pour XP je crois qu'il faut mettre 21 au lieu de 27 dans le script vbs (ligne wsh.echo... 27), et 34 pour W 2000
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 162
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 16:57

Merci à ygeronimi pour sa curiosité et JL35 pour la sub. Ça marche super cheers
Je vais pouvoir modifier mon code pour ne pas avoir de liste à créer Very Happy Very Happy  Very Happy  
Comme quoi, j'ai encore beaucoup de chose à apprendre à mon âge.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
JL35



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

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 17:38

A ton âge... en effet tu es encore jeune, tu as le temps d'en apprendre encore pas mal ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5859
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 17:40

Et heureusement sinon la vie serait triste
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 162
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: lecteur MP3 aléatoire   Ven 10 Avr 2015 - 21:48

Voila mon code modifié avec la sub de JL35.
Il suffit de mettre le fichier dans un répertoire contenant des fichiers MP3 et de le lancer.
Il est possible de changer de titre manuellement en cliquant sur le form.
Code:
dim a$, b%, c%, d$, m%, s%, t$     :Label JOU

width 0,500  :height 0,50  :left 0,screen_x-520  :top 0,20  :border_small 0
Caption 0,"Lecture aléatoire de fichiers MP3"  :font_bold 0  :on_click 0,JOU
dlist 1   :sound 2   :timer 3
a$=file_find_first$
while a$<>"_"
  if upper$(right$(a$,3))="MP3" then item_add 1,a$
  a$=file_find_next$
end_while
file_find_close
c%=count(1)
if c%<2 then message "Le répertoire actif doit contenir au minimum 2 fichiers MP3." :terminate
gosub JOU
end

JOU:
  cls   :b%=int(rnd(c%))+1
  if b%=m% then gosub JOU
  m%=b%
  d$=item_read$(1,b%)
  DUREE(d$)
  t$=trim$(right$(clipboard_string_paste$,7))
  print left$(item_read$(1,b%),len(item_read$(1,b%))-4)
  print_locate 450,0  :print t$
  file_load 2,item_read$(1,b%)  :play 2
  s%=(val(left$(t$,2))*60)+val(right$(t$,2))
  timer_interval 3,s%*1000
  on_timer 3,JOU
  return
  
sub DUREE(d$) :' Merci JL35
  dim_local q$    : q$=chr$(34)
  file_open_write 1,"Duree.vbs"
  file_writeln 1,"FileName = wscript.arguments (0)"
  file_writeln 1,"with CreateObject("+q$+"Scripting.FileSystemObject"+q$+").GetFile(FileName)"
  file_writeln 1,"  Foldername = .ParentFolder"
  file_writeln 1,"  FileName  = .Name"
  file_writeln 1,"End With"
  file_writeln 1,"with CreateObject("+q$+"Shell.Application"+q$+").Namespace(Foldername)"
  file_writeln 1,"  wsh.echo .GetDetailsOf(.Parsename(FileName), 27)" :' mettre 21 pour Win XP au lieu de 27
  file_writeln 1,"end with"
  file_close 1
  execute_wait "cmd.exe /c cscript.exe Duree.vbs "+q$+d$+q$+" | clip"
  file_delete "Duree.vbs"
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
Contenu sponsorisé




MessageSujet: Re: lecteur MP3 aléatoire   

Revenir en haut Aller en bas
 
lecteur MP3 aléatoire
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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