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
» Pourquoi le compilateur stagne
par papydall Hier à 23:23

» Immortaliser les photos de famille
par jjn4 Hier à 18:29

» Concours de Morpions
par jjn4 Hier à 18:11

» Compilateur FBPano
par jean_debord Hier à 10:12

» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
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 : 160
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 : 7992
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 : 160
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 : 7992
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 : 5951
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 : 7992
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 : 160
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 : 7992
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 : 160
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 : 5951
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 : 160
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 : 5951
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 : 5855
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 : 160
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: