Repere id3

Résolu
cs_rastay Messages postés 23 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 31 janvier 2007 - 19 août 2006 à 14:56
cs_rastay Messages postés 23 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 31 janvier 2007 - 20 août 2006 à 18:10
Bonjour à tous,
Alors voila comme de nombreuses personnes ici je suis en train de faire un ptit lecteur mp3 en streaming pour mon site.. J'ai regardé un peu les exemples qu'il y a ici pour m'inspirer et comprendre un peu le fonctionnement de la chose.
Tout marche plutot bien, si ce n'est un tout petit souci :
Je voudrai que s'affiche dès le début de la chanson le temps total de cette dernière. Je pensais que la fonction .duration me permettrait de faire cela, mais ça ne marche que lorsque toute la chanson est chargée pas avant... Alors en cherchant sur le site et dans l'aide de Flash j'ai trouvé la fonction .id3 qui à l'air super bien, mais apparament les tags de mes morceaux n'ont pas du être éditer en utf-8 et du coup le temps ne s'affiche pas.....


Quelqun à une idée de ce que je pourrai faire ? Rééditer les tags mais avec quoi ??? Les logiciels que j'ai trouvé ne permettent pas de rééditer la durée... Une autre fonction ???

Merci à celui qui aura une idée ! CHO !

2 réponses

cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
19 août 2006 à 21:36
Alors si tu vas sur mediaBox, tu trouveras une sources de Ekameleon qui te donneras les éléments que tu recherches, et sa source te donne la durée totale du morceau en cours de lecture :

// programme principal
monSon = new Sound(); // on créer l'objet Son
monSon.savePosition = 0 ; // initialisation de la position de lecture du son en cours
monSon.loadSound("sounds/Sacrifice.mp3",true) ;
monSon.onSoundComplete = function () { // si la musique est finie
    this.start() ; // on relance la musique
}

MovieClip.prototype.init = function () {
    this._x = 150 ; // placement selon x du clip
    this._y = 300 ; // placement selon y du clip
    this.longueurBarre = 100 ; // Taille totale de la barre en largeur
    this.createTextField("duree", 1, 0, 0, 250, 20);  // Création d'un champ de texte qui affichera le temps écoulé depuis la lecture du morceau.
    this.createTextField("total", 2, 0, 20, 250, 20);  // Création d'un champ de texte qui affichera la durée totale du morceau.
    this.createTextField("percent", 3, 0, 40, 250, 20);  // Création d'un champ de texte qui affichera l'avancement de la lecturee du morceau en %.
    this.createEmptyMovieClip("barre" , 4) ; // création d'un clip qui affichera une barre de progression de la lecture.
    this.barre.InitApi () ; // Initialisation des propriétés graphiques pour le tracé de la barre de progression.
    // on fait en sorte que les champs dynamiques ne soient pas sélectionnables.
    this.duree.selectable = false ;
    this.total.selectable = false ;
    this.percent.selectable = false ;
}

// Prototype qui permet de mettre à jour le Clip observant la lecture du morceau de musique
MovieClip.prototype.lecture = function () {
    var pourcent = _root.monSon.position/_root.monSon.duration * 100 ; // rapport de l'avancement de la lecture en %
    var progress = _root.monSon.position/1000 ; // on affecte la progression en seconde de la lecture du morceau (rappel Sound.position est en ms)
   
    // Mise à jour des champs de texte dynamiques pour l'affichage
    this.total.text = "Durée Totale du morceau : " + parseInt(_root.monSon.duration/1000)+" secondes"; // Affichage de la durée totale du morceau en seconde
    this.total.setTextFormat(new TextFormat("Verdana",10,0x000099));
    this.duree.text = "Temps écoulé : " + parseInt(progress)+" secondes"; // Affichage du temps écoulé
    this.duree.setTextFormat(new TextFormat("Verdana",10,0x000099));
    this.percent.text = "Avancement de la lecture : " + parseInt(pourcent) + "%" ; // Affichage de l'avancement de la lecture en %
    this.percent.setTextFormat(new TextFormat("Verdana",10,0x000099));
    this.savePosition = progress ; // mise en mémoire de la progression du morceau pour l'utilisation de la pause (bouton pause et play)
   
    // On dessine la barre de chargement de la musique
    // rapport de l'avancement de la lecture en fonction de la longueur réelle de la barre
    this.barre.largeur = _root.monSon.position /_root.monSon.duration * this.longueurBarre ;
    // on retrace la barre
    this.barre.retrace() ;
    // met à jour les informations affichées (voir référence flash MX)
    updateAfterEvent() ;
}

_root.createEmptyMovieClip("clip", 20) ; // on crée un clip qui servira d'espion pour observer la progression de la lecture du son.
_root.clip.init () ; // on initialise le clip
_root.clip.onEnterFrame = function() {
         this.lecture () ;
}

// Evènements sur les boutons btPlay et btPause.

function lire () {
        _root.monSon.start(_root.clip.savePosition);  // on lance le son au niveau de la position courante enregistrée
}

function pause () {
    _root.monSon.stop() ; // on stoppe le son
    delete _root.monClip.onEnterFrame ; // on détruit la boucle infinie pour libérer la mémoire
}

btPlay.onRelease = lire ; // on affecte l'évènement du bouton btPlay
btPause.onRelease = pause ; // on affecte l'évènement du bouton btPause

// fin du programme principal

Alise
from FlashForum-oi.info
3
cs_rastay Messages postés 23 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 31 janvier 2007
20 août 2006 à 18:10
bah ça c une réponse qui tue ! Merci pour toutes ces infos... J'avais trouver une autre solution de raccroc pour que ça marche en attendant mais du coup je devais parametré moi mm en fonction des quelques chansons que j'avais et ça ne s'automatisait pas... : ce qui va maintenant être possible... merci beaucou :)
A bientot !
0
Rejoignez-nous