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

Signaler
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
-
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
-
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

Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

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)
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
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... ;-) ;
Messages postés
6146
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
8
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'
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
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... ;-) ;