"mpeg file info box + id3 tag editor" (ocx) et non, pas encore un!!! ;-)


Description

Tout ce qui est écrit est à prendre au 2nd degré, c'est histoire de présenter mon code moins académiquement
Pour vous amusez, j'ai mis dans le zip 3 types de mp3 (cbv, vbr et vbri)

Pour ce qui on dit "ENCORE UN!!!!!!" voici quelques petites notions qui je pense vous feront changer d'avis
(Pour les autres allez voir les infos dans la zone code!!!)

Tout d'abord mon code gère les TagV1, TagV2 et Mpeg comme Winamp
>>normal!

je gère les TagV1 et TagV2 en lecture/écriture et les Mpeg en lecture
>>normal!

je gère pour les TagV2 les différents modes d'écriture du "Genre"
>>ha bon y a plusieurs mode d'écriture pour les genres des TagV2?
>> >> OUI!!!
>> >>ex : 42 , (42) , (42)Punk , (42)(15) , Punk , (42)((Mon_Punk)
>> >>tout ceci sera considéré comme étant du Punk
>> >> ((MonGenre) sera concidéré comme "Aucun Genre"

Pour les TagMpeg, je gère les fichiers MP3 de type
-CBR (Constant BitRate constant pour ce qui savent pas)
-VBR (Variable BitRate)
aussi bien les VBR Xing (lame) que les VBRI
>>VBRI c'est quoi? (encodé pa musicmatch par exemple
-ABR (Average BitRate)
Pour info, mon XP (version pro sans service pack) ne gère pas les mp3 VBRI
L'information de la durée n'est pas correcte. idem pour winamp 2.87 au moins , mais winamp5 le gère

Pour les TagMpeg je calcule le nb de frames et donne les infos complémentaires pour le mp3 en "Joint Stereo"

Et enfin, il y a la manière dont est organisé le code...L'ocx est assez simple d'utilisation...voir plus bas zone code!!!

Source / Exemple :


'Voici les infos pour l'utilisation de l'ocx
'
'---------------------------------------------------------------------
'		   les types de variables utiles
'---------------------------------------------------------------------
'
'
'	- TagType:
'
'Déclarer une variable en TagType permet de travailler sur tous les
'tags d'un mp3 facilement...On peut accéder au TagV1, au TagV2 ainsi
'qu'au TagMpeg...
'
'Pour l'utilisation voir "Utilisation des Variables"
'
'
'	-TypeTagV1
'
'Déclarer une variable en TypeTagV1 permet de travailler sur tous les
'TagV1 d'un mp3
'
'Pour l'utilisation voir "Utilisation des Variables"
'
'
'	-TypeTagV2
'
'Déclarer une variable en TypeTagV2 permet de travailler sur tous les
'TagV2 d'un mp3
'
'Pour l'utilisation voir "Utilisation des Variables"
'
'
'	-TypeTagMpeg
'
'Déclarer une variable en TypeTagMpeg permet de lire tous les TagMpeg
'd'un mp3
'
'Pour l'utilisation voir "Utilisation des Variables"
'
'---------------------------------------------------------------------
'		   	les fonctions utiles
'---------------------------------------------------------------------
'
'
'	-GetAllTags 	as TagType
'Cette fonction permet de lire toutes les informations d'un mp3
'	(TagV1, TagV2 et TagMpeg)
'
'
'	-GetTagV1 	as TypeTagV1
'Cette fonction permet de lire les TagV1 d'un mp3
'
'
'	-GetTagV2 	as TypeTagV2
'Cette fonction permet de lire les TagV2 d'un mp3
'
'
'	-GetTagMpeg 	as TypeTagMpeg
'Cette fonction permet de lire les TagMpeg d'un mp3
'
'
'	-SetAllTags 	as Boolean
'Cette fonction permet d'écrire les TagV1 et les TagV2 d'un mp3
'
'
'	-SetTagV1 	as Boolean
'Cette fonction permet d'écrire les TagV1 d'un mp3
'
'
'	-SetTagV2	as Boolean
'Cette fonction permet d'écrire les TagV2 d'un mp3
'
'
'	-ClearAllTags	as Boolean
'Cette fonction permet d'effacer les TagV1 et les TagV2 d'un mp3
'
'
'	-ClearTagV1	as Boolean
'Cette fonction permet d'effacer les TagV1 d'un mp3
'
'
'	-ClearTagV2	as Boolean
'Cette fonction permet d'effacer les TagV2 d'un mp3
'
'
'---------------------------------------------------------------------
'		   	Utilisations des Variables
'---------------------------------------------------------------------
'(dans les exemples, YommTag est le composant placé sur la form)
'
'	-TypeTag
'voici des extraits expliqués de codes relatifs à une variable TypeTag
'
'-exemple 1: lecture ,modification et sauvegarde de tags
'
'	******************************************************
	dim VarTags as TagType
	
	set VarTags = YommTag.GetAllTags("c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Mon_Fichier.mp3")
'	(...)
'	******************************************************
'	
'	dans cet exemple on récupère tous les Tags du fichier mp3
'	dans la variable VarTags
'
'	******************************************************
'	(exmple de suite du code précédente)
'	(...)
	txtv1Artiste.text = VarTags.TagV1.Artiste
'	(...)
	txtv2Album.text = VarTags.TagV2.Album
'	(...)
	lblDurée.caption = VarTags.TagMpeg.Duree & " secondes"
'	(...)
'	******************************************************
'	
'	ici on attribut les valeurs récupérées à des zones de 
'	texte ou label.
'	notez comme il est simple de récupérer les valeurs
'	il y a trois type de tags organisé ainsi:
'		VarTag.TagV1
'		      .TagV2
'		      .TagMpeg
'	Ensuite vous accédez aussi facilement au valeur
'		VarTag.TagV1.Valide  (y a-t-il des TagV1?)
'			    .Artiste 		(string)
'			    .Album   		(string)
'			    .Piste   		(integer)
'			    .Titre   		(string)
'			    .Genre   		(integer)
'			    .Annee   		(string)
'			    .Commentaire	(string)
'		VarTag.TagV2.Valide (y a-t-il des TagV2?)
'			    .Artiste		(string)
'			    .Album		(string)
'			    .Piste		(integer)
'			    .Titre		(string)
'			    .Genre		(integer)
'			    .Annee		(string)
'			    .Commentaire	(string)
'			    .Compositeur	(string)
'			    .Original		(string)
'			    .Copyright		(string)
'			    .Url		(string)
'			    .Encode		(string)
'		VarTag.TagMpeg.Valide (TagVMpeg valide?)
'			      .Taille		(long)
'			      .EntetePos	(long)
'			      .Duree		(long)
'			      .Mpeg		(string)
'			      .Layer		(string)
'			      .CRC		(boolean)
'			      .BitRate		(integer)
'			      .Frequence	(long)
'			      .Padded		(boolean)
'			      .Frames		(long)
'			      .PrivateBit	(boolean)
'			      .Mode		(string)
'			      .ModeExt		(string)
'			      .Copyright	(boolean)
'			      .Original		(boolean)
'			      .Emphasis		(string)
'			      .Vbr		(string)
'
'	******************************************************
'	(suite du code précédente)
'	(...)
	dim Retour as Boolean
'	(...)
	VarTags.TagV1.Titre = txtv1Titre.text
'	(...)
	VarTags.TagV2.Genre = GenreIndex
'	(...)
	Retour = YommTag.SetAllTags("c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Mon_Fichier.mp3,VarTags)
'	(...)
	set VarTags = Nothing
'	******************************************************
'
'	là on mémorise les Tags dans le fichiers
'	Pensez à cette petite ligne de code : 
'		'set VarTags = Nothing'
'
'-exemple 2: travail sur une version de Tag (ici TagV1)
'
'
'	******************************************************
	dim VarTagV1 as TypeTagV1
'	
	set VarTagV1 = YommTag.GetTagV1("c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Mon_Fichier.mp3")
'	(...)
'	******************************************************
'	
'	dans cet exemple on récupère uniquement les TagV1
'
'	******************************************************
'	(suite du code)
'	(...)
	txtv1Artiste.text = VarTagV1.Artiste
	txtv1Titre.text = VarTagV1.Titre
'	(...)
'	******************************************************
'	
'	la variable étant de type TagV1 on obtient directement
'	les informations après le nom de la variable
'	(les propriétés étant les même que dans l'exemple 1)
'
'	******************************************************
'	(suite du code)
'	(...)
	dim Retour as Boolean
'	(...)
	Retour = YommTag.SetTagV1("c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Mon_Fichier.mp3,VarTagV1)
'	(...)
	set VarTagV1 = Nothing
'	******************************************************
'	
'	ici on mémorise les TagsV1
'
'	******************************************************
'	(...)
	Retour = YommTag.ClearTagV2("c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Mon_Fichier.mp3")
'	(...)
'	******************************************************
'	
'	et on pourrait ensuite, comme ici, effacer tous les 
'	TagV2 vu qu'on travail avec les TagV1...
'

Conclusion :


J'ai pas mal cherché afin de proposer cet OCX qui me semble à peu près complet...
J'ai toutefois pas pu tester tous les mp3 du monde entier donc merci de me faire par de toutes vos remarques!!!

Idem s'il y a des informations que vous ne comprenez pas, mais je pense que les explications présentent dans la "zone code" doivent suffir

LIRE LES MESSAGES POSTES POUR LE DETAIL DES UPDATES DU SOURCE

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.