banner

Précédent   InfographiK - Communauté Graphique > FLASH & ACTION SCRIPT > Discussions autour de Flash

Réponse
 
LinkBack Outils de la discussion
  #1 (permalink)  
Vieux 01/09/2005, 20h58
Membre Senior
 
Date d'inscription: July 2003
Localisation: Paris
Messages: 112
[TUTO] Jukebox MP3 STREAMING :)

Bon voilou une petite source AS , ke j'ai utilisé sur www.djboudj.com dans le player d'ambiance sonore.

donc déja un ptit visuel de ce ke nous allon faire :
http://www.xarald.com/ss_domaine/tuto/jukebox

donc avis au débutant, ca nécessite un minimum de base sous flash , comme connaitre les occurence et les variable et kelke notion en AS pour comprendre.

Donc sont principale avantage est la possibilité de charger des son relativement lourd, pkoi pas un mp3 de 60 minute eventuellement puisque tout est géré en streaming

Bon déja le streaming ne marche qu'a 2 condition.

1: la vitesse du serveur
2: la vitesse du client

ces 2 conditions dépende aussi de l'encodage.

Si j'ai un mp3 encoder a 128kbps, que mon serveur peut envoyer 512 kbps de donné a la fois et je n'ai que 4 personne qui pourront télécharger un mp3 en même temp :

4x 128 kbps = 512kbps

Enfin bien sur les personnes qui télécharge doivent bien entendu avoir une connection qui sois plus rapide que 128 kbps, donc adsl minimum, si c'est du RTC, vitesse 56kbps maximum le streaming se lancera et se coupera toute les 2 seconde.


Bon maintenant aprés la théorie place a la pratique


donc ce code est a inséré sur la premiere frame de votre annimation , il n'y aura pas besoin de faire d'autre frame 1 seul suffit.
ActionScript Code:
  1. stop();
  2. Sound.prototype.checkLoadProgress = function() {
  3.  
  4. var kbLoaded = Math.round(this.getBytesLoaded()/1024);
  5.  
  6. var kbTotal = Math.round(this.getBytesTotal()/1024);
  7.  
  8. var percentDone = isNaN(Math.round(kbLoaded/kbTotal*100)) ? 0 : Math.round(kbLoaded/kbTotal*100);
  9.  
  10. this.onBytesLoaded(this.getBytesLoaded(), this.getBytesTotal(), kbLoaded, kbTotal, percentDone);
  11. };
  12.  
  13. Sound.prototype.clearLoadCheck = function() {
  14.  
  15. if (this.loaderID) {
  16.  
  17.  clearInterval(this.loaderID);
  18. }
  19. };
  20.  
  21. Sound.prototype.preloadSound = function(url, isStreaming) {
  22.  
  23. this.clearLoadCheck();
  24.  
  25. this.loaderID = setInterval(this, "checkLoadProgress", 100);
  26.  
  27. this.loadSound(url, isStreaming);
  28. };
  29.  
  30. music = new Sound();
  31.  
  32. music.onLoad = function(success) {
  33.  
  34. this.clearLoadCheck();
  35. if (success) {
  36. //SI CA MARCHE
  37.  pourcent = "CHARGEMENT TERMINER";
  38. } else {
  39.  //SI CA ECHOUE
  40.  pourcent = "CHARGEMENT ECHOUER";
  41. }
  42. };
  43. music.onBytesLoaded = function(bytesLoaded, bytesTotal, kbLoaded, kbTotal, percentLoaded) {
  44. pourcent = "STREAMING MODE "+(percentLoaded)+"%";
  45. };
  46.  
  47. // CHARGEMENT DU SON EN STREAMING AU LANCEMENT
  48. music.preloadSound("http://www.xarald.com/mp3/mp3/colombes.xld", true);//je donne le chemin du son
  49. music.onLoad = function(succès){
  50. }
  51. // CHARGEMENT DU SON EN STREAMING PAR LANCEMENT DES BOUTTONS
  52. monboutton1_btn.onPress = function(){ // J'indique une fonction sur le
  53. //boutton nommé "monboutton1_btn" je cré donc un boutton avec un nom
  54. //d'occurence "monboutton1_btn" sur la scene
  55. music.preloadSound("http://www.xarald.com/mp3/mp3/edgeninconnu.xld", true);//je donne le chemin du son
  56. music.onLoad = function(succès){
  57. }
  58.  
  59. }
  60. monboutton2_btn.onPress = function(){//Je crée un autre boutton avec un son different
  61. music.preloadSound("http://www.xarald.com/mp3/mp3/medley.xld", true);//je donnne un chemin different pour un autre son.
  62. music.onLoad = function(succès){
  63. }
  64. }
  65. //SI je veut ma musique joue en boucle je rajoute ca sinon je l'éfface
  66. this.music.onSoundComplete = function(){
  67. this.start()
  68. }
  69.  
  70. //Si je veut crer un boutton Stop je le met sur la scene et je l'apelle "stop_btn"
  71. stop_btn.onPress = function(){//j'initialise une fonction sur le boutton nommé "stop_btn"
  72. music.stop();//j'indique la fonction ici stop sur l'objet music qui est l'ojbet sound()
  73. }

Donc sur ma scène je doit avoir 4 choses :
a) 1 champ dynamique nommer en Variable "pourcent
b) 1 boutton nommé en Occurence "monboutton1_btn"
c) 1 boutton nommé en Occurence "monboutton2_btn"
d) 1 boutton nommé en Occurence "stop_btn"

bon tout ces nom sont a titre indicatif, vous pouvez bien entendu les changer. si vous souhaiter ajouter une nouveau boutton pour un autre morceau de musique, vous n'avez qu'a rajouter un boutton sur la scene en le nommant en occurence

et ce fragment de code:

ActionScript Code:
  1. lenomdemonboutton.onPress = function(){//Je crée un autre boutton avec un son different
  2. music.preloadSound("le chemin de mon morceau.mp3 ou autre", true);//je donnne un chemin different pour un autre son.
  3. music.onLoad = function(succès){
  4. }

Bon petite explication pourquoi dans le script il y a des .xld dans les urls des mp3

Je me suis appercu que souvent quand on a un accélérateur de téléchargement style flashget ou Dap des kil voit un .mp3 ou avi ect... il propose de le télécharger. en changeant l'extension de son fichier par autre choses que mp3 et bien sur kelke choses qui n'existe pas ( eviter .PSD ou .JPG par exemple ) flash lit quand même le morceau et les accélérateur de téléchargement ne se déclenche pas.

Téléchargement de la source:
http://www.xarald.com/ss_domaine/tut...ox/jukebox.zip
Réponse avec citation
  #2 (permalink)  
Vieux 05/09/2005, 21h26
Avatar de Sleed
Membre Habitué
 
Date d'inscription: June 2005
Localisation: Sophia-Antipolis (06)
Messages: 89
Bon tutoriel et utile
Je testerai tout sa pour voir si c'est facil un de ces 4.
Seul probleme c'est que quand tu en à charger un et que tu veux revenir dessus il faut attendre qu'il soit à 100% Et ce serait pas mal d'arriver à faire une transition d'une musique à l'autre.

Dernière modification par Sleed 05/09/2005 à 21h31.
Réponse avec citation
Réponse

Outils de la discussion

Règles de messages
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui



Fuseau horaire GMT +2. Il est actuellement 00h06.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0 Tous droits réservés.
Version française #13 par l'association vBulletin francophone

Communauté Graphique
CNIL : 1130886