Son : recuperer l'avancement et l'envoyé dans un cookie pour la recuperer sur un

Résolu
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 - 30 mai 2008 à 14:46
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 - 6 oct. 2008 à 17:17
bonjour,
je voudrais savoir si il existe un moyen de recuperer l'avancement du son pour l'envoyer dans un cookie
pour le recuperer quand l'utilisateur change de page...

jsais pas si j'ai été très clair mais bon n'hésitez pas jsuis la

15 réponses

Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
4 juin 2008 à 01:13
Et bien il faut utiliser le SharedObject, dans l'hypothese ou tu ne connaitrait pas je t'ai rediger le code :

stop();
var save_position:SharedObject = SharedObject.getLocal("music_position", "/"); //declaration du SharedObject
//
my_song = new Sound(); //declaration de l'objet son
my_song.loadSound("Music.mp3", true); //Chargement de la musique (a placer dans le meme dossier que le swf ou alors changer le chemin)
my_song.stop();//Arret de la musique
song_in_play = false;//indique que le son n'est pas en lecture
//
//
function Play_Sound() {//function de lecture
    if (save_position.data.valeur != undefined) {//si la sauvegarde contient une valeur
        position = save_position.data.valeur;//la position est egale a la valeur sauvegarder
        my_song.start(position);//la musique est lancer a partir de cette meme position
    } else {//sinon
        my_song.start();//la musique demmare du debut
    }
    song_in_play = true;//La musique est en lecture
}
function Pos_Analize() {//analyse la position de la musique
    save_position.data.valeur = my_song.position/1000;//la valeur de la sauvegarde est egale a la position de la musique/1000 (pourquoi /1000? et bien c'est pour avoir le resultat en seconde car le parametre le lecture se fait en seconde)
}
//
onEnterFrame = function () {
    if (song_in_play) {//si la musique est en lecture,
        Pos_Analize();//on lance la fonction d'analyse de position
    } else {//sinon
        Play_Sound();//on lance la fonction de lecture
    }
    //petit plus ->
    if (Key.isDown(Key.SPACE)) {//lors de l'appuie sur espace
        song_in_play = false;//la musique n'est plus en lecture
        save_position.data.valeur = undefined;//la sauvegarde de position est indefini (en gros on remet la musique a zero)
    }
};
save_position.flush();//pour finir on rafraichit la sauvegarde

Voila je pense avoir été assez explicatif
3
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
3 juin 2008 à 17:11
Bonjour,
Oui c'est possible d'enregistrer la position d'un musique.
tu peux la recupere en ecrivant :

ma_musique.position (par exemple)
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
3 juin 2008 à 17:31
bonjour

merci skev et comment je fais pour l'envoyer dans un cookie?
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
4 juin 2008 à 10:10
franchement merci c'est simpa de ta part en plus avec toutes les lignes commentée tu as été plus explicatif
tu m'as été d'un grand secour
encore un grand MERCI pour avoir pris le temps de m'expliquer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
4 juin 2008 à 12:35
Pas de soucis content de t'avoir aidé
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
24 sept. 2008 à 11:43
bonjour,
c encore moi ,
en fait je voudrais coupler avec un autre code

onClipEvent(load) {
 this._visible = false;
 
 trace ("-- XML init --");
 
 _parent.XMLconfig.addEventListener("result", cfg_ok);
 _parent.XMLconfig.trigger();
 _global.tracks = new Array();
 _global.tracks_loaded = false;
 _nPl
 
 function cfg_ok() {
  try  {
   load_playlist(0);
  } catch (Error) {}
 }
 
 function load_playlist(nPl) {
  try {
   _nPl = nPl;
   trace("Loading PL[" + nPl + "] : " + _parent.playlists.items[nPl]);
   _parent.XMLPlaylist.URL = _parent.playlists.items[nPl];
   _parent.XMLPlaylist.addEventListener("result", tracks_ok);
   _parent.XMLPlaylist.trigger();
  } catch (Error) { }
 }
 
 function tracks_ok() {
  for (i = 0; i < _parent.tracks.length; i++) {
   _global.tracks.push(new String(_parent.tracks.items[i]));
   trace("Adding " + _parent.tracks.items[i]);
  }
  doNext();
 }
 
 function doNext() {
  if (_nPl < _parent.playlists.items.length - 1) load_playlist(_nPl + 1)
  else XML_ok();
 }
 
 function XML_ok() {
  trace ("-- File list ok --");
  for (i = 0; i < _global.tracks.length; i++)
   trace(_global.tracks[i]);
  _global.tracks_loaded = true;
  trace(_parent.params.autoplay);
  _parent.snd_ctrl.xml_loaded(_parent.params.autoplay);
 }
}

si tu peux m'aider skev (ou quelqu'un d'autre) merciii
0
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
24 sept. 2008 à 20:19
Il n'y a pas de soucis seulement , je ne trouve pas la variable de ton objet son.
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
25 sept. 2008 à 10:34
oups elle doit etre la

onClipEvent(load) {



 this._visible = false;
 trace ("-- Snd_ctrl init ! --");
 
 //
 // Vars
 //
 var iTrack:Number = 0;
 var endpos:Number = 0;
 var isReady:Boolean = false;
 var isPlaying:Boolean = false;
 var isPaused:Boolean = false;
 var volume = -80+_root.XMP3.VolumeControl.drag._y;  << moi jai essayé ca mais ca fonctionne pas
 var s:Sound = new Sound();
 var _currentID3 = null;
 
 //
 // Funcs
 //
 function playTrack () {
  my_trace("");
  my_trace("PTrack : " + iTrack + " - " + _global.tracks[iTrack]);
  my_trace("");
  if (isPlaying) {
   pauseTrack();
   return null;
  }
  isPlaying = true;
  _currentID3 = null;
  s.loadSound(_global.tracks[iTrack], true);
  s.setVolume(volume);
  s.onSoundComplete = function() { nextTrack(); };
  s.onID3 = function() {
   for( var prop in s.id3 ){
         my_trace(prop + ":"+ s.id3[prop] );
      }
   _currentID3 = s.id3
  };
 }
 
 function stopTrack() {
  s.stop();
  delete s;
  s = new Sound();
  isPlaying = false;
  isPaused = false;
 }
 
 function pauseTrack() {
  my_trace("pauseTrack()");
  if (isPaused) {
   endpos = s.position;
   //stopTrack();
   //s.loadSound(_global.tracks[iTrack], false);
   s.start(Math.ceil(endpos/1000));
  } else {
   s.stop();
  }
  isPaused = !isPaused;
 }
 
 function getID3() {
  return (_currentID3);
 }
 
 function getTrack():Number {
  return (iTrack + 1);
 }
 
 function getTrackTotal():Number {
  return (_global.tracks.length);
 }
 
 function getTrackPos():String {
  return (_format_duration(s.position));
 }
 
 function getMsPos():Number {
  return (s.position);
 }
 
 function hasStarted():Boolean {
  return (s.position > 0);
 }
 
 function isLoaded():Boolean {
  return (s.getBytesTotal() == s.getBytesLoaded());
 }
 
 function getTrackDur() {
  return (_format_duration(s.duration));
 }



 function getBitrate() {
  return (Math.ceil((s.getBytesTotal() / 1024) / (s.duration / 1000)) * 8)
 }
 
 function unpauseAt(s_pos) {
  if (isPaused) {
   s.loadSound(_global.tracks[iTrack], false);
   s.start(Math.ceil(s_pos));
  } else {
   s.stop();
  }
  isPaused = !isPaused;
 }
 
 function nextTrack() {
  if (iTrack < _global.tracks.length -1) {
   iTrack++;
  } else {
   iTrack = 0; 
  }
  isPlaying = false;
  stopTrack();
  playTrack();
 }
 
 function prevTrack() {
  if (iTrack > 0) {
   iTrack--;
  } else {
   iTrack = _global.tracks.length - 1 ;
  }
  stopTrack();
  isPlaying = false;
  playTrack();
 }
 
 //
 // Events
 //
 function xml_loaded(autoplay:Boolean) {
  my_trace ("-- Snd_ctrl has hand --");
  isReady = true;
  if (autoplay)
   playTrack();
 }
 
 //
 // Local Tools
 //
 function _format_duration(duree:Number):String {
  if (Math.floor(duree/60000) < 10) {
   t_min = "0" + Math.floor(duree/60000);
  } else {
   t_min = Math.floor(duree/60000);
  }
  if (Math.floor(duree / 1000) % 60 < 10) {
   t_sec = "0" + Math.floor(duree / 1000) % 60;
  } else {
   t_sec = Math.floor(duree / 1000) % 60;
  }
  return (t_min + ":" + t_sec + "." + (duree/100) % 10);
 }
 
 function my_trace(val) {
  trace(val);
  //_root.LOG.text += val;
 }
}


merci pour t reponses skev c cool parce ke mes cheveux commence a ce décolorer lol
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
26 sept. 2008 à 11:44
pour ceux que ca interresse j'ai mis mon player modifier la

http://flash.mediabox.fr/index.php?showforum=19
0
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
27 sept. 2008 à 11:14
Essaye comme ça :

stop();
var save_position:SharedObject = SharedObject.getLocal("music_position", "/");
//
//
onEnterFrame = function () {
    save_position.data.valeur = s.position/1000;
};
//
this._visible = false;
trace("-- Snd_ctrl init ! --");
//
// Vars
//
var iTrack:Number = 0;
var endpos:Number = 0;
var isReady:Boolean = false;
var isPlaying:Boolean = false;
var isPaused:Boolean = false;
var volume = -80+_root.XMP3.VolumeControl.drag._y;
var s:Sound = new Sound();
var _currentID3 = null;
//
// Funcs
//
function playTrack() {
    my_trace("");
    my_trace("PTrack : "+iTrack+" - "+_global.tracks[iTrack]);
    my_trace("");
    if (isPlaying) {
        pauseTrack();
        return null;
    }
    isPlaying = true;
    _currentID3 = null;
    s.loadSound(_global.tracks[iTrack], true);
    s.setVolume(volume);
    s.onSoundComplete = function() {
        nextTrack();
    };
    s.onID3 = function() {
        for (var prop in s.id3) {
            my_trace(prop+":"+s.id3[prop]);
        }
        _currentID3 = s.id3;
    };
    position = save_position.data.valeur;
    s.start(position);
}
function stopTrack() {
    s.stop();
    delete s;
    s = new Sound();
    isPlaying = false;
    isPaused = false;
}
function pauseTrack() {
    my_trace("pauseTrack()");
    if (isPaused) {
        endpos = s.position;
        //stopTrack();
        //s.loadSound(_global.tracks[iTrack], false);
        s.start(Math.ceil(endpos/1000));
    } else {
        s.stop();
    }
    isPaused = !isPaused;
}
function getID3() {
    return (_currentID3);
}
function getTrack():Number {
    return (iTrack+1);
}
function getTrackTotal():Number {
    return (_global.tracks.length);
}
function getTrackPos():String {
    return (_format_duration(s.position));
}
function getMsPos():Number {
    return (s.position);
}
function hasStarted():Boolean {
    return (s.position>0);
}
function isLoaded():Boolean {
    return (s.getBytesTotal() == s.getBytesLoaded());
}
function getTrackDur() {
    return (_format_duration(s.duration));
}
function getBitrate() {
    return (Math.ceil((s.getBytesTotal()/1024)/(s.duration/1000))*8);
}
function unpauseAt(s_pos) {
    if (isPaused) {
        s.loadSound(_global.tracks[iTrack], false);
        s.start(Math.ceil(s_pos));
    } else {
        s.stop();
    }
    isPaused = !isPaused;
}
function nextTrack() {
    if (iTrack<_global.tracks.length-1) {
        iTrack++;
    } else {
        iTrack = 0;
    }
    isPlaying = false;
    stopTrack();
    playTrack();
}
function prevTrack() {
    if (iTrack>0) {
        iTrack--;
    } else {
        iTrack = _global.tracks.length-1;
    }
    stopTrack();
    isPlaying = false;
    playTrack();
}
//
// Events
//
function xml_loaded(autoplay:Boolean) {
    my_trace("-- Snd_ctrl has hand --");
    isReady = true;
    if (autoplay) {
        playTrack();
    }
}
//
// Local Tools
//
function _format_duration(duree:Number):String {
    if (Math.floor(duree/60000)<10) {
        t_min = "0"+Math.floor(duree/60000);
    } else {
        t_min = Math.floor(duree/60000);
    }
    if (Math.floor(duree/1000)%60<10) {
        t_sec = "0"+Math.floor(duree/1000)%60;
    } else {
        t_sec = Math.floor(duree/1000)%60;
    }
    return (t_min+":"+t_sec+"."+(duree/100)%10);
}
function my_trace(val) {
    trace(val);
    //_root.LOG.text += val;
}
//
save_position.flush();
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
29 sept. 2008 à 12:08
Salut skev,

merci, mais ou je dois placer ca parce que si je remplace le code que je t donné par celui ci cela ne charge plus ma playlist...
0
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
29 sept. 2008 à 13:36
En fait je te l'ai mis au format "image clé", je suppose que dois il était dans un clip vu ton "onClipEvent(load)".
Donc place l'integralité du code exepter le "stop" et la boucle "onEnterFrame" dans ton evenement "onClipEvent(load)".
Puis creer un evenement "onClipEvent (enterFrame)", sur ce meme clip, et place a l'interieur le code de la boucle "onEnterFrame".
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
29 sept. 2008 à 16:58
j'ai essayé aussi et ca fonctionne pas

dans ce post il y a mes fichiers si tu peu y jeter un oeil ca serait cool
http://flash.mediabox.fr/index.php?showtopic=89330
0
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
29 sept. 2008 à 18:06
Pas de soucis
0
jphilippev Messages postés 253 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 5 décembre 2008 1
6 oct. 2008 à 17:17
Salut Skev je sais que j'abuse un peu  mais j'y arrive vraiment pas tu as vu quelque chose que j'ai mal fait?
0
Rejoignez-nous