Récupérer la durée totale d'un son en as3

Résolu
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 9 déc. 2010 à 17:57
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 9 déc. 2010 à 21:45
Hello,

bon ça y est c'est décidé : je me lance dans l'apprentissage de l'as3 !
Certes beaucoup de choses ont changé depuis l'as2, mais le peu que j'ai expérimenté me plaît déjà énormément. Néanmoins je bute déjà sur certains points, en l'occurrence récupérer la durée totale d'un son. Pour mon 1er test je réalise donc un player mp3, et voici mon code de déclaration de l'objet Sound ainsi que le code concernant l'affichage du temps en lecture :
var maZik:Sound = new Sound();
var urlZik:URLRequest = new URLRequest("zik.mp3");
var piste1:SoundChannel;
var positionTete:Number = 0;
maZik.load(urlZik);

function maZikSonEnd(evt:Event){
btn_play.visible = true;
btn_pause.visible = false;
btn_play.removeEventListener(Event.ENTER_FRAME, Jauge);
btn_play.removeEventListener(Event.ENTER_FRAME, afficherTemps);
}

function Jauge(evt:Event){
if (piste1.position/maZik.length>0){
    	Barres.Barre_play.scaleX = piste1.position/maZik.length;
}
}

var tempsEcoule:Number;
//var heures:*;
var minutes:*;
var secondes:*;

var tempsTotal:Number;
var min:*;
var sec:*;
var TimeTot:String;
//tempsTotal = piste1.position/length;
min = Math.floor(tempsTotal/60);
sec = Math.floor(tempsTotal%60);
min = min <= 9 ? "0" + min : min;
sec = sec <= 9 ? "0" + sec : sec;
TimeTot = min + ":" + sec;

function afficherTemps(evt:Event){
tempsEcoule = piste1.position/1000;
//heures = Math.floor(tempsEcoule/3600);
minutes = Math.floor(tempsEcoule/60);
secondes = Math.floor(tempsEcoule%60);
//heures= heures<=9 ? "0"+heures : heures;
minutes = minutes <= 9 ? "0" + minutes : minutes;
secondes = secondes <= 9 ? "0" + secondes : secondes;
Temps.Time.text = TimeTot + " - " + minutes + ":" + secondes;
}


Bref, si vous savez comment je peux intégrer la récupération de la durée totale du son je suis preneur ;).

Merci ,

A plus,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;

4 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
9 déc. 2010 à 18:06
Hello,

Pour recuperer la durée totale il faut attacher un event à maZik :

var totalTime:Number;

maZik.addEventListener(Event.COMPLETE, soundLoaded);

function soundLoaded(e:Event):void
{
   totalTime = maZik.length;
}


A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
9 déc. 2010 à 18:10
Re,

et bien dis donc Orange73 : ça c'est de la réponse rapide !
Ok je commence à piger le truc : en fait il faut attacher un event systématiquement en as3, bon et bien il faut que je m'habitue à cette méthode et ensuite ça va rouler .

Merci ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
9 déc. 2010 à 18:31
AS3 c'ets un langage évènementiel, soit 80% du temps c'est ce que tu vas utiliser.
Content de ne plus te compter parmi les retardataires ;)

Peg'
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
9 déc. 2010 à 21:45
AS3 c'ets un langage évènementiel, soit 80% du temps c'est ce que tu vas utiliser.
Content de ne plus te compter parmi les retardataires ;)


ouaip... Ben j'ai quand même du boulot car même si d'une certaine manière ça me paraît "simple" dans la manière d'aborder le code, ça nécessite toute une "gymnastique" pour la transition as2/as3 et le plus dur c'est finalement de faire abstraction des habitudes prises en as2. Mais bon... J'avoue que du peu que j'ai expérimenté c'est puissant, donc y'a plus qu'à .

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Rejoignez-nous