Aller au contenu

je pete les plomb sur ma playlist avec ID3 :(


masta64

Sujets conseillés

Bonjour, etant debutant je galere grave, mais bon !!!

je suis entrain de creer un player mp3 pour mon site, un lecteur simple avec un bouton play, stop, next, previous et le plus important de tous et ce qui me cause un probleme que je ne parviens à regler c'est la playlist !!!

Voila j'ai fait une petite anim qui permet lorsqu'on click sur un bouton playlist d'afficher la playlist des titres, en theorie car y un truc qui bug et je me suis pris la tete et j'arrive pas à comprendre !!!! Aidez moi svp !!!

En plus j'ai un autre petit probleme sur le bouton play qui n'as pas l'air de fonctionner mais c'est les boutons next et previous qui marche à sa place wink.gif bizarre, j'ai pourtant pas mal modifier mon code en enlevant les _root, et en regroupant le code sur un calque pour pas qu'il soit eclater !!!

Help please car je m'arrache les cheveux !!!! Ahhhhhhhhhh

Ah j'oubliais, le pire c'est que lorsque je colle le code et le texte dynamique (ID3Text1) sur la scene 1 (scene principale), tout fonctionne (l'id3 du titre s'affiche et change en fonction du titre et reste afficher), le seul probleme c'est que je ne parvient toujours pas à afficher la playlist complete !!!

Lien vers le commentaire
Partager sur d’autres sites

Voici alors le code AS 2 de la scene 1 (scene principale), c'est ici que mon bouton play deconne !!!

var liste:Array = new Array();
liste.push("mp3/track1.mp3");
liste.push("mp3/track2.mp3");

var _pos:Number = 0;
var _current:Number = 0;
var _autoPlay:Boolean = false;


var music:Sound = new Sound(this);
music.onID3 = function(){
ID3 = "<b>"+music.id3.artist+"</b> - "+music.id3.songname+" - "+music.id3.year;
ID3Texte1.htmlText = ID3;

}
music.onLoad = function(success){
if (!success){
showErreur("Fichier Introuvable");
} else {
if (_autoPlay) lecture();
}
}
music.onSoundComplete = function(){
_pos = 0;
LectPause.gotoAndStop();
if (_current < liste.length){
suivant();
} else {
_current = 0;
charger();
}
}
function suivant(){
_autoPlay = true;
_current++;
if (_current == liste.length) _current = 0;
charger();
}
function precedent(){
_autoPlay = true;
_current--;
if (_current < 0) _current = liste.length-1;
charger();
}

function charger(){
_pos = 0;
music.loadSound(liste[_current]);
music.setVolume(100);
}

function lectPause(){
if (LectPause._currentframe == 1){
lecture();
} else {
pause();
}
}
function lecture(){
LectPause.gotoAndStop();
music.start(_pos);
}
function pause(){
LectPause.gotoAndStop();
_pos = music.position/1000;
music.stop();
}
function arreter(){
LectPause.gotoAndStop();
music.stop();
_pos = 0;
}


LectPause.gotoAndStop();
LectPause.onRelease = play;

Arreter.onRelease = arreter;

Fond.useHandCursor = false;

Precedent.onRelease = precedent;

Suivant.onRelease = suivant;

et enfin voici le code AS2 que j'ai coler sur mon movieclip et c'est ici qu'il y a le probleme de la playlist

var liste:Array = new Array();
liste.push("mp3/track1.mp3");
liste.push("mp3/track2.mp3");

var _pos:Number = 0;
var _current:Number = 0;
var _autoPlay:Boolean = false;

var ID3:String;
var ID3Texte1:TextField;

ID3Texte1.embedFonts = false;
ID3Texte1._visible = true;

var music:Sound = new Sound(this);
music.onID3 = function(){
ID3 = "<b>"+music.id3.artist+"</b> - "+music.id3.songname+" - "+music.id3.year;
ID3Texte1.htmlText = ID3;

}

function charger(){
_pos = 0;
music.loadSound(liste[_current]);
music.setVolume(100);
}

charger();

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai enfin reussi à regler quelque probleme !!!

maintenant l'ID3 s'affiche bien (mais pas automatiquement, il faut que je clik sur next ou prev pour qu'il s'affiche), moi je souhaiterais qu'il s'affiche directement lorsque je déroule l'onglet playlist de mon movieclip, et aussi qu'il affiche tout les titres de la playlist et pas que celui qui est en lecture !!!! Grrrrr

Ensuite j'ai regler le probleme du bouton "play" qui fonctionne enfin mais y a un bug, car lorsque je clik deux fois dessus il demarre deux fois le titre moi je souhaiterais qu'il stoppe le premier avant de commencer le deuxieme !!! et ensuite contrairement aux boutons next et prev, quand je click dessus il n'affiche pas la playlist !!! Grrr HELP !!!!

les boutons next et prev fonctionne et il n'y apparament pas de probleme avec (pour l'instant) !!!;)

PS: pour expliquer ce que j'ai fait, j'ai tout simplement enlever le code de la scene 1 et je l'ai coller sur mon movieclip (sur un layer "Actions" biensur) ensuite j'ai jouer avec les this._parent (et pas avec les _root) ;)

Voici le code AS2 pour ceux qui voudrais me venir en aide pour mon bouton play et pour ma playlist


// ici j'ai essayer plein de truc pour pouvoir faire en sorte d'afficher tout les titres de ma playlist mais en vain HELP !!!

var liste:Array = new Array();
liste.push("mp3/track1.mp3");
liste.push("mp3/track2.mp3");

var _pos:Number = 0;
var _current:Number = 0;
var _autoPlay:Boolean = false;

var ID3:String;
var ID3Texte1:TextField;

ID3Texte1.embedFonts = false;
ID3Texte1._visible = false;

var music:Sound = new Sound(this);
music.onID3 = function(){
/*for( var prop in music.id3 ){
trace( prop + " : "+ music.id3[prop] );
}*/
ID3 = "<b>"+music.id3.artist+"</b> - "+music.id3.songname;
ID3Texte1.htmlText = ID3;
}
music.onLoad = function(success){
if (!success){
showErreur("Fichier Introuvable");
} else {
if (_autoPlay) lecture();
}
}
music.onSoundComplete = function(){
if (_current < liste.length){
suivant();
} else {
_current = 0;
charger();
}
}
function suivant(){
_autoPlay = false;
_current++;
if (_current == liste.length) _current = 0;
charger();
}
function precedent(){
_autoPlay = false;
_current--;
if (_current < 0) _current = liste.length-1;
charger();
}

function charger(){
_pos = 0;
music.loadSound(liste[_current]);
music.setVolume(50);
}

function lecture(){
_autoPlay = true;
music.start();
}

function arreter(){
music.stop();
}
function showID3Temp(){
showID3();
id3Interval = setInterval(hideID3,3000);
}
function showID3(){
ID3Texte1._visible = true;
}
function hideID3(){
ID3Texte1._visible = true;
if (id3Interval) clearInterval(id3Interval);
}


this._parent.LectPause.onRelease = lecture;

this._parent.Arreter.onRelease = arreter;

Fond.useHandCursor = true;

this._parent.Precedent.onRelease = precedent;

this._parent.Suivant.onRelease = suivant;


charger();

Lien vers le commentaire
Partager sur d’autres sites

bon voila ce que j'ai fait !!!!

J'ai refait totalement mon code et ma presentation mais petit probleme sur le bt_play et je souhaiterais enlever le composant ListBox pour le remplacer par un simple textfield !!!! possible ou pas ???

ou alors faire en sorte que le fond de la listBox soit transparent !!!! ;)

voici mon code !!!



// Gestion du XML

playlist_xml = new XML();
playlist_xml.ignoreWhite = true;
playlist_xml.onLoad = function(ok) {
if (ok = true) {
playliste = this.firstChild.childNodes;
premiere = this.firstChild.firstChild;
enCours = premiere;
for (i = 0; i < playliste.length; i++) {
liste.addItem(enCours.attributes.num + ": " + enCours.attributes.nom, enCours.attributes.fichier);
enCours = enCours.nextSibling;
}
}
};
playlist_xml.load("playlist.xml");
//
// Gestion du chargement des mp3s
//
chanson = new Sound();
chanson.onLoad = function(ok) {
if (ok = true) {
chanson.start();
_root.ecranTitre = "[0%]:" + liste.getSelectedItem().label;
} else {
_root.ecranTitre = "Problème au chargement.";
deselection();
}
};
chanson.onSoundComplete = function() {
_root.ecranTitre = "Chanson terminée.";
deselection();
};
//
// Gestion du clic dans la liste
//
liste.setSelectMultiple(false);
liste.setChangeHandler("userClic");
function userClic() {
fichierEnCours = liste.getSelectedItem().data;
chanson.loadSound(fichierEnCours, true);
chansonIntervale = setInterval(afficheTimer, 1000);
}
function deselection() {
clearInterval(chansonIntervale);
_root.ecranTitre = "Musique stoppée.";
liste.setSelectedIndices(null);
}
//
// Gestion des boutons
//

bt_stop.onRelease = function() {
chansonPosition = Math.round(chanson.position / 1000);
clearInterval(chansonIntervale);
_root.ecranTitre = "[pause]:" + liste.getSelectedItem().label;
chanson.stop();
};
bt_play.onRelease = function() {
chanson.start(chansonPosition, 1);
chansonIntervale = setInterval(afficheTimer, 1000);

};
bt_prev.onRelease = function() {
if (liste.getSelectedIndex() > 0) {
liste.setSelectedIndex(liste.getSelectedIndex() - 1);
}
};
bt_next.onRelease = function() {
if (liste.getSelectedIndex() < liste.getLength() - 1) {
liste.setSelectedIndex(liste.getSelectedIndex() + 1);
}
};


//
// affichage du timer
//
function afficheTimer() {
if (chanson.duration > 0) {
chansonPourcent = Math.round((chanson.position * 100) / chanson.duration);
_root.ecranTitre = "[" + chansonPourcent + "%]:" + liste.getSelectedItem().label;
}
}

Lien vers le commentaire
Partager sur d’autres sites

Ca c'est ce qu'on pourrait appeller un monologue ;)

Manifestement, il ne se trouve pas beaucoup de webmasters pouvant t'aider.

Lien vers le commentaire
Partager sur d’autres sites

Alors pour ton listBox qu'il passe en transparent je pense pas que l'on puise le faire

ou alors regarde dans l'inspecteur de composant si on peux le faire (changer le background) mais je suis pas sur du tout.

Pour ton texte field fait en un clip et as la ligne

liste.addItem(enCours.attributes.num + ": " + enCours.attributes.nom,

tu remplace par le nom de ton clip

Lien vers le commentaire
Partager sur d’autres sites

Grand MERCI à toi Slimer, tu est vraiment sympa de te pencher sur le cas d'un petit debutant comme moi, je vais de se pas tester ton code et ton astuce en esperant que cela regle mon probleme de playlist !!!

c'est dommage car avec le ListBox ca fonctionnait à merveille cette histoire de playlist mais probleme de perso de graphisme pour mon site !!!!

Je vais quand meme te joindre le fla par MP, pour que voi le probleme plus en detail et aussi le probleme de 'bt_play" ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...