Soucis: intégration de plusieurs mp3player dans flash

Résolu
redbeluga Messages postés 3 Date d'inscription lundi 8 mai 2006 Statut Membre Dernière intervention 14 mai 2006 - 13 mai 2006 à 21:00
cs_timore Messages postés 32 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 3 février 2012 - 14 mai 2006 à 19:15
bonjour,

novice en flash'ouille' je fais un site tout en flash (pas peur moi...) sous flash pro 8

J'ai 4 pages differentes pour 4 groupes de musique (présentation, extraits(sic), photos, etc etc)

Pour voir le soucis c'est là : www.redbelugaproduction.com

J'ai un old mp3player (de mr.JeroenW) sur chaque page.

Chaque lecteur va chercher sa playlist.xml (4 playlists avec un nom différent pour chacune)

Quand je teste le movie chaque lecteur reconnais sa playlist (ouf!) , mais (héhéhé) quand je lance un morceau, par exemple du
lecteur 1page 1, pas de soucis, par contre je change de page pour aller ecouter un autre groupe , déjà le morceau précédent continue à jouer (énervant) et de plus quand je lance un morceau x du player2 (page2 donc) il rejoue le morceau du lecteur précédent, et j'ai constaté qu'en cliquant deux fois sur le nouveau morceau il se lancait enfin, mais bon pas cool comme situation....

script du player :

//--------------------------------------------------------------------------
// location of the playlist if no html parameter is found
// change "playlist.xml" if you want another filename ..
//--------------------------------------------------------------------------
_root.playlist = "osni_playlist.xml" ;

//--------------------------------------------------------------------------
// below here it's all code and code ..
//--------------------------------------------------------------------------

// stage variables
Stage.showMenu = false;
Stage.scaleMode = "noScale";
stop();

// player variables
volume = 60;
current_song = 1;
top.equalizer._visible=0;

// playlist loading
data_xml = new XML();
data_xml.ignoreWhite = true;
data_xml.onLoad = loadData;
data_xml.load(playlist);

// parsing all xml data into flash
function loadData(success) {
if (success) {
// showdisplay and playlist toggles
showDisplay = this.firstChild.attributes.showDisplay;
if (showDisplay == "yes") {
top.easeY(toppos);
topup = false;
display_btn._rotation+=180; }
showPlaylist = this.firstChild.attributes.showPlaylist;
if (showPlaylist == "yes") {
bot.easeY(botpos);
botup = false;
list_btn._rotation+=180; }
// getting all titles and filenames
aPath = new Array();
songTitel = new Array();
audioTracks = new Array();
audioTracks.shuffle();
audioTracks = this.firstChild.childNodes;
song_total = audioTracks.length;
for (var i = 0; i<song_total; i++) {
aPath.push(audioTracks[i].attributes.path);
songTitel.push(audioTracks[i].attributes.title);
// buiding playlist buttons
bot.playlist.btn.duplicateMovieClip("btn"+i, i);
bot.playlist["btn"+i]._y = bot.playlist.btn._y+i*int(bot.playlist.btn._height) +i;
bot.playlist["btn"+i].txt = checkDigits(i+1)+". "+songTitel[i];
bot.playlist["btn"+i].hit.onPress = function() {
listClick(this._parent.getDepth()+1); };
}
//checking autostart mode
autoStart = this.firstChild.attributes.autoStart;
if (autoStart == "yes") {
playSong();
play_btn._visible = 0;
} else if (autoStart == "no") {
play_btn._visible = 1;
pause_btn._visible = 0;
} else if (autoStart == "random") {
current_song = random(song_total)+1;
playSong();
play_btn._visible = 0;
} else {
current_song = int(this.firstChild.attributes.autoStart);
playSong();
play_btn._visible = 0; } }
// done ! all loaded succesfully. purging trash
delete audioTracks;
delete data_xml;}

// list button
function listClick(prm) {
delete pausepos;
current_song = prm;
MySound.stop();
playSong(); }

// list scroller
bot.list_bg.onEnterFrame = function() {
if (hitTest( _root._xmouse, _root._ymouse, true) && this._parent.playlist._height > this._height ) {
ymin = this._y+this._height - this._parent.playlist._height;
ymax = this._y+3;
conv = (this._ymouse -15)*1.3/this._height;
conv > 1 ? conv = 1 : null;
conv < 0 ? conv = 0 : null;
this._parent.playlist.easeY (ymax - conv*(ymax-ymin)); } };
bot.playlist.setMask(bot.list_bg);

// play function
function playSong() {
AudioPath = aPath[current_song-1];
// checking for pause > start from there
if (pausePos>0) {
top.equalizer._visible = 1;
MySound.start(pausePos, 0);
pausePos = 0;
// startup new sound
} else {
MySound = new Sound();
MySound.setVolume(volume);
MySound.loadSound(AudioPath, true);
MySound.onSoundComplete = function() {
top.equalizer._visible = 0;
if (autoStart == "random") {
current_song = random(song_total)+1;
} else { current_song song_total ? current_song 1 : current_song++;
}
playSong(); };
// check loading bar
top.track_load.onEnterFrame = function() {
total = this._parent._parent.MySound.getBytesTotal();
geladen = this._parent._parent.MySound.getBytesLoaded();
if (geladen != total) {
this._parent.load_display = Math.round((geladen*100/total))+"% Loaded";
this._xscale = Math.round((geladen*100/total));
} else {
this._xscale = 100;
top.equalizer._visible = 1;
delete this.onEnterFrame;
delete this._parent.load_display; } }; }
// switch paly/pause buttons
play_btn._visible = 0;
pause_btn._visible = 1; }


// play button
play_btn.onRelease = function() {
playSong(); };


// pause button
pause_btn.onRelease = function() {
this._visible = 0;
play_btn._visible = 1;
pausePos = MySound.position/1000;
MySound.stop();
top.equalizer._visible=0; };


// next button
next_btn.onRelease = function() {
delete pausepos; current_song song_total ? current_song 1: current_song++;
MySound.stop();
playSong(); };


// previous button
prev_btn.onRelease = function() {
delete pausepos; current_song 1 ? current_song song_total: current_song--;
MySound.stop();
playSong(); };


// display toggle button
top.setMask(top_mask);
toppos = top._y;
top._y = int(toppos + top_mask._height - 29);
topup = true;

display_btn.onPress = function() {
if(topup == true) {
top.easeY(toppos);
topup = false; }
else {
top.easeY(int(toppos + top_mask._height -27));
topup = true; }
this._rotation += 180; };

// playlist toggle button

bot.setMask(bot_mask);
botpos = bot._y;
bot._y = botpos - bot.list_bg._height -6;
botup = true;

list_btn.onPress = function() {
if(botup == true) {
bot.easeY(botpos);
botup = false; }
else {
bot.easeY(botpos - bot.list_bg._height -6);
botup = true; }
this._rotation += 180; };

// drag button functionality
drag_btn.onPress = function() {
startDrag(this._parent); };
drag_btn.onRelease = drag_btn.onReleaseOutside=function () {
stopDrag(); };

// copyright button
copy.onPress = function() {
getURL("http://www.jeroenwijering.com/?item=Flash+Mp3+Player","_blank"); }

// updating time display
this.onEnterFrame = function() {
dur = int(MySound.duration/1000);
pos = int(MySound.position/1000);
playTime = {};
playTime.minutes = int((pos)/60);
playTime.seconds = int((pos)%60);
playTime.total = checkDigits(playTime.minutes)+":"+checkDigits(playTime.seconds);
trackTime = {};
trackTime.minutes = int(dur/60);
trackTime.seconds = int(dur%60);
trackTime.total = checkDigits(trackTime.minutes)+":"+checkDigits(trackTime.seconds);
if (top.load_display == undefined) {
top.display = playTime.total+" / "+trackTime.total;
} else {
top.display = top.load_display; }
if (top.trackDrag != true) {
prozent = pos*100/dur;
top.track_play._xscale = prozent; } };

// prefixing a 0 to the time
function checkDigits(toCheck) {
return (toCheck<10) ? toCheck="0"+toCheck : toCheck; }


// track progress slider functions
top.track_back.onPress = function() {
this._parent.trackDrag = true;
this._parent.track_play.onEnterFrame = function() {
perc = (this._parent._xmouse-this._parent.track_back._x)/this._parent.track_back._width;
max = this._parent.track_load._width/this._parent.track_back._width;
perc > max ? perc = max: null;
perc < 0.01 ? perc = 0.01: null;
this._width = this._parent.track_back._width*perc;
this._parent._parent.pausePos = (perc*this._parent._parent.MySound.duration/1000); }; };top.track_back.onRelease top.track_back.onReleaseOutside function () {
delete this._parent.track_play.onEnterFrame;
this._parent.trackDrag = false;
MySound.stop();
playSong(); };


// volume slider functions
vol_back.onPress = function() {
vol_front.onEnterFrame = function() {
perc = (_xmouse-vol_back._x)/vol_back._width;
perc > 0.95 ? perc = 1: null;
perc < 0.05 ? perc = 0: null;
this._width = vol_back._width*perc;
volume = Math.round(perc*100);
MySound.setVolume(volume);
top.equalizer._yscale = volume; }; };
vol_back.onRelease = vol_back.onReleaseOutside=function () {
delete vol_front.onEnterFrame; };
vol_front.setMask(vol_mask);

// drawing equalizer in actionscript
top.equalizer.setMask(top.eq_mask);
top.equalizer.onEnterFrame = function() {
i++;

this.createEmptyMovieClip("graph"+i, i);
with(this["graph"+i]) {
_x = 0;
_y = 0;
beginFill(0x666666, 50);
moveTo(0,0);
for (j=0; j< 36; j++) {
z = random(12)+8;
lineTo(j*6,-1);
lineTo(j*6,-z);
lineTo(j*6+4,-z);
lineTo(j*6+4,-1);
lineTo(j*6,-1); }
lineTo(j*6,0);
lineTo(0,0);
endFill(); }
i >= 3 ? i=0: null; };


// scrolling the display song title
function scrollTitle() {
top.title.txt.autoSize = true;
if (songTitel[current_song-1].length > 20) {
top.title.txt.text = songTitel[current_song-1]+" "+songTitel[current_song-1];
top.title._x+top.title._width/2 +4< top.title_mask._x ? top.title._x = top.title_mask._x : top.title._x--; }
else {
top.title.txt.text = songTitel[current_song-1];
top.title._x = top.title_mask._x-3; } }
top.title.setMask(top.title_mask);
setInterval(scrollTitle, 40);

// easing display and playlist movement
MovieClip.prototype.easeY = function(t) {
this.onEnterFrame = function() {
this._y = int(t-(t-this._y)/1.5);
if (this._y>t-1 && this._y<t+1) {
delete this.onEnterFrame; } }; };

pffff c long.....

maintenant une playlist.xml :

<?xml version="1.0" encoding="UTF-8"?>



<song path="mp3_osni/Disco_love_in_my_heart.mp3" title="OSNI - Disco love in my heart" />

<song path="mp3_osni/Entertainment_for_girls.mp3" title="OSNI - Entertainment for girls" />

<song path="mp3_osni/Fireball_girls.mp3" title="OSNI - Fireball girls" />

<song path="mp3_osni/Je_veux_etre_ton_clebard.mp3" title="OSNI - Je veux etre ton clebard" />

<song path="mp3_osni/Cheri_motomania.mp3" title="OSNI - Cheri motomania" />

J'espère avoir été assez clair
voilou voilou, si quelqu'un peut me sortir cette fichu aiguille du pied je le remercie d'avance,

nico.
mon msn : nicolachot@tiscali.fr

4 réponses

redbeluga Messages postés 3 Date d'inscription lundi 8 mai 2006 Statut Membre Dernière intervention 14 mai 2006
14 mai 2006 à 17:58
bon...

problème résolu !!!! ouf!

j'ai enlever le btn play et le btn pause du player , j'ai créé un btn stop pour chaque lecteur et assigné l'action script stopallsound

c'est pas académique mais bon ca solutionne mon probleme et permet d'avancer sur le site

si quelqu'un à une solution plus académique je sis preneur et aussi pour enrichir mes connaissances en flash

merci encore timore pour ton post il m'a permis de debloquer le bug

le résultat (encore en construction) : www.redbelugaproduction.com
3
cs_timore Messages postés 32 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 3 février 2012
13 mai 2006 à 23:11
hello,

ben rajoute un stopsound(); quand tu cliques sur ta vignette....

ça devrait suffir....

ciao
0
redbeluga Messages postés 3 Date d'inscription lundi 8 mai 2006 Statut Membre Dernière intervention 14 mai 2006
14 mai 2006 à 16:49
salut timore,

merci pour ta réponse qui me résoud un petit soucis : j'ai mis le stopallsound() sur le bouton 'home' (pour revenir au menu : nickel, merci encore (je suis noob)

mais,

quand je joue un morceau sur le player 1 (par exemple) et que je fais pause; ça marche pas de probleme,

par contre, ensuite je vais sur la page 2 (ou 3 ou 4 ) pour jouer un autre player et là ca joue le morceau du player 1 !!!

OUINNNNNNNNN!!!!!!
0
cs_timore Messages postés 32 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 3 février 2012
14 mai 2006 à 19:15
Re-salut,

Ben moi aussi je suis comme tu dis un "noobs" et c'est bien connu à chaque probleme existe une solution....
Donc si ton truc fonctionne contente toi de ça pour l'instant sachant que tout est perfectible il faut aussi savoir " parfois" se contenter de ce que l'on a....
Le tout est que ça fonctionne....

bonne continuation

sinon sympa les artistes de redbeluga je recommande vivement ce label

++

RZAREK°
0
Rejoignez-nous