Bonjour,

J'ai essayé de faire moi meme un petit lecteur mp3 sous Flash 9.0 AS3 avec un bouton lecture/pause et arret. Lorsque je teste mon fichier dans Flash CS3 tout fonctionne bien mais lorsque je publie sous forme html ou swf, le bouton pause fait n'importe quoi. C'est à dire qu'au moment où je mets le morceau en pause et que j'appuie sur lecture, il reprend la lecture à un moment aléatoire (et pas le moment ou je lui dis de reprendre). Bref j'y comprends pas grand chose ! J'ai ce problème à la fois sous IE et Firefox.

Descriptif du fonctionnement (voulu !):

Au début un son defaut.mp3 est chargé et lu automatiquement. On peut controler la lecture, pause et arret par des boutons. Puis en cliquant sur le bouton de la chanson 1, la lecture du morceau courant s'arrete et on charge et lit le morceau 1, ensuite controllable par les boutons lecture/pause et arret.


Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
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 charger un son initial, et on initialise toutes les variables
var s:Sound = new Sound();
var req:URLRequest = new URLRequest("defaut.mp3");
var channel:SoundChannel;
var pausePosition:Number=0;
var playbackPercent:Number=0;
barrePosition.width = 0;
jouer(req); // Ensuite on le joue
 
 
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;
}

Merci bcp d'avance