EvilGost
Messages postés235Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 mai 2011
-
12 mars 2007 à 23:15
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
13 mars 2007 à 21:01
Bonjour à tous,
voilà, j'ai un problème bien épineux. Je dois lire et écrire une entête d'un fichier wav. Je m'explique, j'ai une appli (qui n'est pas à moi, donc je n'ai pas les sources) qui écrit quelques choses dans l'entete d'un fichier wav (fichier audio non compressé).
J'ai donc besoin de récupérer le contenu de cette entete (header) et ,éventuellement, de pouvoir modifier cette entete.
J'ai bien trouvé quelques sources diverses sur internet, mais c'est du C, alors j'ai un peu de mal et je ne suis pas sur que cela corresponde.
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 mars 2007 à 21:00
Re
En deux mots (j'ai faim)
Il te suffit de préparer la structure comme ceci :
Private Type typeFichierWAV
Identification As String * 4
Donnée1 As Long
Donnée2 As Long
...
End Type
Bien sûr, il faut que la déclaration du type corresponde pile poil à l'entête
Tu dimensionnes une variable avec ce type
Dim EnTete As typeFichierWav
Ensuite, tu ouvres ton fichier avec Open en mode Binary et tu n'as plus qu'à faire un
Get #NoFichier, 1, EnTete
C'est tout. Il saura combien de bytes il doit lire puisque ta variable a une dimension fixe et définie
Tu n'auras plus qu'à extraire les données contenues dans
EnTete.Identification
EnTete.Donnée1 ...
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 mars 2007 à 23:47
Salut
Comme tout fichier tehnique, il possède un entête.
Il est généralement composé d'un code de reconnaissance, 3 ou 4 lettres, puis d'une suite de valeurs correspondant aux caractéristiques technique du fichier (durée, nombre de trames, ...)
Il faut d'abord que tu trouves le document technique expliquant la structure de cet entête.
Ensuite seulement, tu pourras tenter de le lire et de le réécrire.
Pour cela, il suffira de créer une structure de variable "compatible en type" avec cet entête et de lire l'entête.
"compatible en type" c'est à dire qu'elle sera composée d'une suite de variables, genre :
- texte de 4 caractères
- suivi d'un entier Long dans lequel est stockée la durée (*)
- suivi d'un tableau d'octets représentant des options,
- suivi de ... je ne sais quoi
- suivi des données du fichier proprement dit
(*) La durée : en quelle unité ? C'est aussi pour cela qu'il faut trouver la description de l'entête
En général, quand je cherche ce genre d'info, je tape ceci dans mon moteur de recherche : "structure fichier WAV" ou "WAV file structure"
Jette aussi un oeil à ce site qui répertorie les extensions de fichiers avec, quelques fois, des liens vers ce genre d'infos plus pointues : clique ici
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Pour la partie programmation, regarde comment sont faites les manipulations de TAG dans les fichiers MP3.
La structure du fichier d'entête est différente, mais la technique d'accès reste la même.
EvilGost
Messages postés235Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 mai 20112 13 mars 2007 à 00:08
Merci à toi pour la rapidité de ta réponse, effectivement, c'est un peu ce que j'avais lu sur le net, j'étais tombé sur la page de structure....et de la manière dont tu l'exposes, ca a l'air simple, mais je vois pas du tout comment je peux faire....
Je faisais surtout un appel pour quelqu'un qui aurait eventuellement une fonction qui aurait cette utilité...car je pense que je vais avoir un peu de mal à créer cette fonction de lecture.ecriture de header tout seul...
EvilGost [;)]
Vous n’avez pas trouvé la réponse que vous recherchez ?