Bonjour,
Alors voici ce que j'ai essayé de faire :
Je veux un petit lecteur mp3 autonome avec un bouton Lecture/Pause et
Arret. Au chargement de la page, le fichier defaut.mp3 est chargé et
lu automatiquement. On peut ensuite le controler avec les boutons du
lecteur. (cad Pause/Reprise ou Arret).
Jusqu'ici, tout va bien :)
Ensuite il y a deux boutons 1 et 2 qui permettent d'arreter
la lecture du morceau courant et de charger et lire respectivement les
fichiers 1.mp3 et 2.mp3 dans le lecteur précédent.
En gros au lieu d'avoir un lecteur pour
chaque morceau, je veux que le lecteur reste la et que seul les
morceaux chargés changent, je ne sais pas si je suis clair :)
Bref j'ai essayé de programmer ceci en AS3 et tout marche nickel quand
je fais Ctrl+Enter. Par contre quand je publie sous forme swf ou
html, j'ai un problème avec le bouton Lecture/Pause. Au moment ou je
clique sur Pause, la lecture s'arrete bien, mais quand je ré appuie
sur Lecture, j'ai l'impression que ça reprend n'importe quand et je ne
sais pas trop à quoi c'est du.
Merci bcp d'avance !
Voici mon code :
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundLoaderContext;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.media.ID3Info;
stop();
// On commence par créer toutes les variables partagées et on
initialise toutes les variables
var s:Sound = new Sound();
var channel:SoundChannel;
var pausePosition:Number=0;
var playbackPercent:Number=0;
barrePosition.width = 0;
req=new URLRequest("defaut.mp3");
jouer(req); // Ensuite on charge et lit le morceau par défaut
this.lecture_btn.addEventListener(MouseEvent.CLICK,function_lecture);
this.arret_btn.addEventListener(MouseEvent.CLICK,function_arret);
this.morceau1_btn.addEventListener(MouseEvent.CLICK,function_1);
this.morceau2_btn.addEventListener(MouseEvent.CLICK,function_2);
function function_1(event:Event) {
req = new URLRequest("1.mp3");
jouer(req);
}
function function_2(event:Event) {
req = new URLRequest("2.mp3");
jouer(req);
}
//Cette fonction permet de lire ou de mettre en pause le morceau chargé
function function_lecture(event:Event) {
if (lecture_btn.currentFrame==1) {
channel = s.play(pausePosition);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
s.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
lecture_btn.gotoAndStop(2);
} else {
pausePosition = channel.position;
channel.stop();
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
lecture_btn.gotoAndStop(1);
}
}
// Cette fonction permet d'arreter la lecture du morceau
function function_arret(event:Event) {
channel.stop();
pausePosition=0;
barrePosition.width = 0;
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
lecture_btn.gotoAndStop(1);
}
// Cette fonction calcule le pourcentage du fichier lu
function onEnterFrame(event:Event):void
{
var estimatedLength:int =
Math.ceil(s.length / (s.bytesLoaded / s.bytesTotal));
playbackPercent =
Math.round(100 * (channel.position / estimatedLength));
barrePosition.width =playbackPercent;
}
function onPlaybackComplete(event:Event)
{
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
// Cette fonction sert à charger un nouveau morceau et de le lire : il
est //ensuite controllable par les boutons lecture/pause et arret
function jouer(req:URLRequest) {
s = new Sound();
s.load(req);
s.addEventListener(Event.ID3, onID3InfoReceived);
pausePosition=0;
channel = s.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
s.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
lecture_btn.gotoAndStop(2);
}
// Cette fonction permet d'afficher le nom de la chanson
function onID3InfoReceived(event:Event)
{
var id3:ID3Info = event.target.id3;
titre.text=id3.songName;
}