Bonjour
Je souhaiterais effectuer un lecteur mp3 par avec lecture en streaming pour pouvoir lire des morceaux depuis internet.
Je dispose de trois occurences différents:
1. une barre représentant le morceaux
2. une barre de progression du telechargement situé à l'intérieur de la première barre. Cette barre simule le telechargement du morceau tout en modifiant son _xscale. Ce qui permettra à l'utilisateur de savoir quel proportion du morceau à déjà été chargée
3. une icone (type cercle ou carré) situé au dessus des deux autres barres qui effectue une transition linéaire affin de simuler la lecture du morceaux.
L'objectif etant que l'utilisateur peut à tout moment draguer l'icone de lecture le long de la barre de morceau afin de se placer ou il le souhaite sur le morceau.
Pour ceci j'ai utilisé la syntaxe suivante lors du stopDrag de mon icone de lecture:
var reprise:Number = (this._x/barre_tot._width*monMP3.duration)/1000
monMP3.stop();
monMP3.start(reprise);
Voici donc mon problème:
Tout fonctionne normalement si je ne simule aucun prreload.
Par contre si je simule le preload, la variable monMP3.duration n'est pas définie à sa longueur totale puisque le morceau n'est pas encore totalement chargé. Du coup ma reprise ne s'effectue pas au bon endroit.
Question:
Pour le moment afin de contourner ce problème j'ai simplement effectué un trace(monMP3.duration) sans preload. J'ai alors remplacé dans mon calcul de variable reprise (cf ci dessus) le bout monMP3.duration par la valeur récupéré par le trace (methode bourrine quoi ).
Etant donné que mon objectif est de pouvoir charger un morceaux de musique choisit par l'utilisateur, cette methode ne me servira à rien (à part créer un fichier xml qui définira toutes les longueurs en millisecondes de tous les morceaux pouvant etre choisis par l'utilisateur, mais bon.... ).
Existe-t-il donc une méthode pour connaitre la longueur du morceaux (en millisecondes) depuis le début du preload?
J'imagine que celà peut etre possible en utilisant monMP3.getBytesTotal() qui lui est fixe depuis le début du preload. Mais le seul lien entre la longueur d'un morceaux et son nombre de bytes totaux est la compression de celui ci. Donc dois-je utiliser le id3 de mon son? ou autre chose?
j'espère que j'aurais été assez clair
Partager