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

Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
- - Dernière réponse : BBFUNK01
Messages postés
1313
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... ;-) ;
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 210 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Orange73
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
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... ;-) ;
Commenter la réponse de BBFUNK01
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
0
Merci
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'
Commenter la réponse de pegase31
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
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... ;-) ;
Commenter la réponse de BBFUNK01