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
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
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 : 164
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 : 8011
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 : 164
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 : 8011
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 : 6072
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 : 8011
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 : 164
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 : 8011
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 : 164
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 : 6072
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 : 164
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 : 6072
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 : 5876
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 : 164
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
 Sujets similaires
-
» lecteur MP3 aléatoire
» 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

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: