begin process at 2012 05 26 04:02:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > DECODEUR/ENCODEUR DE PLAYLIST AU FORMAT PLS/M3U

DECODEUR/ENCODEUR DE PLAYLIST AU FORMAT PLS/M3U


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :playList, decodeur, encodeur, pls, m3u Niveau :Initié Date de création :17/10/2009 Vu / téléchargé :4 440 / 257

Auteur : pegase31

Ecrire un message privé
Site perso
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

 Description

Classe Statique permet de charger une playlist de format .PLS et .M3U (les format les plus répandus sur la toile), et de les décoder dans un XML, permettant ainsi d'avoir accès directement aux informations présentes (nom du fichier, nom et durée du morceau).

Toute la documentation et les commentaires se trouvent dans le .as fournis.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Emilie_Simon.m3uTélécharger ce fichier [Réservé aux membres club]1 123 octets
  • Emilie_Simon.plsTélécharger ce fichier [Réservé aux membres club]1 385 octets
  • PlayList.asTélécharger ce fichier [Réservé aux membres club]Voir ce fichier13 008 octets
  • PlayList.flaTélécharger ce fichier [Réservé aux membres club]59 904 octets
  • PlayList.swfTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 493 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture AS3 - PRINCIPE ET APPLICATION DE FONCTION RÉCURSIVE
Source avec Zip Source avec une capture AS3 - JEU DU TAQUIN
Source avec Zip Source avec une capture AS3 - SIMULATION DE GRILLE D'ÉDITION
Source avec Zip Source avec une capture BOUTON DE VOLUME
Source avec Zip Source avec une capture SNOW FLAKES AS3 (CS4)

 Sources de la même categorie

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar

 Sources en rapport avec celle ci

Source avec Zip PLAYER FLV PLAYLIST XML par sebjungle
Source avec Zip Source avec une capture PLAYER MUSIQUE +PLAYLIST XML +PLAYLIST PERSO +ANIMATIONS par goldenboy68

Commentaires et avis

Commentaire de landolsi10 le 17/10/2009 09:19:05

oui je le trouve a la perfection 5 étoiles.

Commentaire de BananaTree le 17/10/2009 11:19:27

slt,

j'ai pas téléchargé, mais juste jeté un rapide coup d'oeil sur l'as (comme d'hab lol)

je penses que tu devrais virer le loader et définir l'action de l'event complete en fonction "trim".
ça te permetrais de renomer ta classe en "???Parser.as" et la rendrait plus souple d'utilisation (utilisation avec massapi, ou des systèmes de loader intégrée comme ceux du spas 3.0)

beau travail...

++
pascal

Commentaire de pegase31 le 17/10/2009 11:59:30 administrateur CS

Alors, Bananatree, soit tu en as trop dit, soit pas assez .... tu peux développer, stp, car j'ai pas vraiment tout compris le pourquoi du comment que tu me dis de faire ça ...

Le seul soucis d'une classe statique est qu'elle n'est pas un EventDispatcher car elle n'a pas d'instance. C'est à dire qu'elle est "muette" et donc ne peux pas envoyer d'événements. Ce qui oblige à écouter le loader pour savoir quand le chargement est fini.
Mais si tu as une autre solution, je suis évidemment preneur !

Peg'

Commentaire de BananaTree le 17/10/2009 13:48:36

en as3 une classe statique peut être un event dispatcher, mais ce n'est pas le sujet.

ta classe actuelle playlist.as est une classe utilitaire. il est don normale qu'elle fournisse des methodes de classe qui permettent de traiter telle ou telle action.
par contre, le chargement d'un fichier n'a rien à voir dans cette logique. cela génère forcement des doublons de code, puisque l'ensemble des dev as3 utilisent leurs propres gestionaires de chargement.

je te conseilles (c nest qu'un conseil ;) ) de transformer "PlayList.as" en "PlayListParser.as", d'en supprimer toute la logiquee de gestion de chargement. crée ensuit ta classe PlayList.as qui utilisera les methodes de "PlayListParser.as" et la gestion du chargement.

en faisant cela, tu seras bien plus en phase avec les règle de l'orienté objet. et ça évitera aux developpeurs de modifier tes classes à chaque fois qu'une nouvelle mise à jour est dispo.

pascal


Commentaire de gremlins7 le 17/10/2009 18:13:31

Salut,
je suis assez d'accord avec l'analyse de BananaTree, en revanche, j'ai un peu de mal a capter a quoi ça sert de parser les données vers un XML ? A priori, tu va utiliser les données juste après l'extraction ?

Commentaire de BananaTree le 17/10/2009 19:01:30

slt,

en fait j'ai pas trés vite (20secondes maxi), je parlais de cette fonction (donc aucun xml effectivement)

private static function loadComplete(evt:Event):void {
var re:RegExp = /\n/g; //Efface les doubles sauts ...
loader.data = loader.data.replace(re, ""); // ... de ligne (Pc uniquement)
tab = loader.data.split("\r"); //place les lignes dans un tableau (indépendants des types de playList)
}

merci d'avoir corrigé gremlins7 ;)
++
pascal

Commentaire de pegase31 le 18/10/2009 03:08:06 administrateur CS

Bananatree : oui, je vois l'idée, mais là je proposais une classe "clé en main". Mais je comprend ta logique.

Gremlins 7 : il est plus facile de gérer le XML lors de la création de la playList avec ajout/suppression/déplacement d'entrée et sauvegarde par la suite. Le XML étant transparent pour l'utilisateur, n'alourdissant pas le système et offrant une bonne ergonomie au traitement de liste.
De plus, si tu as besoin d'une information sur le titre en cours de lecture avant le chargement, il est indispensable de donner l'accés aux infos à n'importe quel moment.

Peg'

Commentaire de dadoo1 le 18/10/2009 15:12:19

Format de fichier inattendu ! super on a déjà changer de version de flash ? c'est la combien j'en suis a la 8 :(

Commentaire de pegase31 le 19/10/2009 01:18:21 administrateur CS

Déjà ? c'est la 10, CS4 ... et oui, ça fait environ 3 ans qu'on a changé depuis la 8 ....
Peg'

Commentaire de gremlins7 le 19/10/2009 10:59:37

Ah tiens, encore un spéléologue...

Commentaire de dadoo1 le 19/10/2009 12:03:21

Lol je savais pour cs4 mais ca évolue trop vite ,prévoir de changer de version logiciel quasiment tous les ans avec adobe faut pouvoir suivre financièrement , j'ai l'impression flash mx 2004 c'était encore hier, bref désolé pour cette parenthèse un peu hors sujet j'aurais voulu accéder a ce code tanpis ce sera pour plus tard.

Commentaire de pegase31 le 19/10/2009 12:08:08 administrateur CS

Le fichier .as est tout à fait ouvrable avec n'importe quel notepad, cependant, le code est en as3 .. et flash 8 ne fait que de l'as2.

Peg'

Commentaire de BananaTree le 19/10/2009 13:20:31

>>le code est en as3...

... compilable gratuitement avec le compilateur du SDK de flex, et éditable avec le soft gratuit "flashdevlop"
;)

Commentaire de top30 le 22/10/2009 22:50:45

Ben moi, aprés 2 whisky-coca et le plaisir de voir lire une bonne source je te dirais:
Une interface déterminant ce qu'est une Playlist"...
- IPlaylist.as
     get length():uint;
     getSongURLAt( index:uint ):String ;
     getSongTitleAt( index:uint ):String ;
     getSongDurationAt( index:uint ):int;
     addSong( url:String, title:String="", duration:Number=0 ):Boolean;
     removeSong( url:String ):Boolean;
     removeSongAt( index:uint ):Boolean;
     moveSong( from:uint, to:uint ):Boolean ;
     encode(data:XML):String;
     decode(data:String):XML;


La classe base contenant les playlist :
- AbstractPlaylist.as
     get length():uint;
     getSongURLAt( index:uint ):String ;
     getSongTitleAt( index:uint ):String ;
     getSongDurationAt( index:uint ):String ;
     addSong( url:String, title:String="", duration:Number=0 ):void;
     removeSong( url:String ):void;
     removeSongAt( index:uint ):void;
     moveSong( from:uint, to:uint ):Boolean ;
     encode(data:XML):String; (JETANT UNE ERREUR)
     decode(data:String):XML; (JETANT UNE ERREUR)

--> PlaylistPLS.as
    extends AbstractPlayList
    implements IPlaylist
    --> encode(data:XML):String ; (EFFECTUANT l'ENCODAGE ET SUPPRIMANT l'ERREUR)
    --> decode(data:String):XML ; (EFFECTUANT l'DECODAGE ET SUPPRIMANT l'ERREUR)

--> PlaylistM3U.as
    extends AbstractPlayList
    implements IPlaylist
    --> encode(data:XML):String ; (EFFECTUANT l'ENCODAGE ET SUPPRIMANT l'ERREUR)
    --> decode(data:String):XML ; (EFFECTUANT l'DECODAGE ET SUPPRIMANT l'ERREUR)

A part ca, j'ai rien compris au code...
AH AH AH AH ! C'est vrai en plus...

Commentaire de top30 le 22/10/2009 22:55:52

Et en plus mon analyse (que je dis pas que c'est la bonne ou la meilleure mais la mienne)
confirme ce que te dis Bananatree, le chargement des données est indépendant de la playlist.
La playlist désirant un "String" pour s'autogénérer à partir de celui-ci, que ce dernier provienne d'un chargement ou d'une variable de classe compilée, ou de mes dons de télépathie doit peut lui importer...

Commentaire de top30 le 22/10/2009 22:59:27 9/10

Je profite qu'il faille un commentaire pour pouvoir noter (j'ai oublier) pour te préciser que j'ai inverser le concept pour l'interface "playlist":
--> encode(data:String):XML ; (EFFECTUANT l'ENCODAGE ET SUPPRIMANT l'ERREUR)
--> decode(data:XML):String ; (EFFECTUANT l'DECODAGE ET SUPPRIMANT l'ERREUR)

J'ai mis 9.5 (9 avec la souris, et 0.5 avec tout mon respect..)

Commentaire de BananaTree le 23/10/2009 12:03:25

slt,

Pour respecter la logique architecturale, "AbstractPlaylist.as" doit s'appeller "PlaylistBase.as"

++
pascal

Commentaire de top30 le 23/10/2009 15:49:13

¿Pourquoi si (selon moi) elle ne peut pas fonctionner seule?
Il lui faut absolument une sous classe qui surécrirait les fonctions "encode" et "decode".
Je serais d'accord avec toi, si, les instances de superclasse "PlaylistBase" pouvaient fonctionner seules, hors dans le schémas proposé, ce n'est pas le cas !

Dis nous vite pourquoi "base", jai hâte de me coucher moins bête...

Commentaire de gremlins7 le 23/10/2009 18:55:20 7/10

La je trouve que vous chipotez !!! Perso, AbstractPlaylist.as me convient très bien, après les nomenclatures c'est toujours pareil : c'est un sujet de désaccord certain.


J'ai mis 7 ( source finalement bien utile 5, et écrite proprement +2 )

Commentaire de BananaTree le 23/10/2009 19:39:25

+1 à gremlins7, c vrai que je chipote ;)
(d'autant que je factorise de cette façon depuis SPAS 2.0...)

mais je pense que ça mérite un peu + que 7 vu que ça sort largement du train train des codes à 2 balles qu'on à l'habitude de subir...

++ et bon codes

Commentaire de top30 le 24/10/2009 00:28:48

http://hopemultimedias.com/lab/pegase31.zip


C'est ton projet réécrit selon le concept décrit précedement.
- media/IPlayList.as
- media/PlayList.as (abstract)
- media/PlayListM3U.as
- media/PlayListPLS.as
- net/PlayListLoader.as

J'ai testé rapidement cela semble fonctionner correctement...
A tester la focntion "moveTrack()...

A plus et encore bravo...

Commentaire de top30 le 24/10/2009 19:18:57

Aprés une certaine réflexion je suis d'accord avec Peg'.
Une seule classe est bien suffisante. Une classe instanciable comme décrite avant avec en plus 4 méthodes statique :
- PlayList.encodeM3U(xml):String
- PlayList.decodeM3U(string):XML
- PlayList.encodePLS(xml):String
- PlayList.decodeM3U(string):XML

J'ai changé le nom du zip précedent.
http://hopemultimedias.com/lab/pegase31-classUnic.zip (la nouvelle version)
http://hopemultimedias.com/lab/pegase31-multiClasses.zip (l'ancienne version)

Commentaire de Chaotikmind le 28/10/2009 10:11:57

>>... compilable gratuitement avec le compilateur du SDK de flex, et éditable avec le soft >>gratuit "flashdevlop" ;)

Rooh  , un ami ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Encodeur MPG -> SWF [ par SMoG ] salut, qqn connaitrait un bon encodeur mpeg -> swf qui marche bien, qui me fasse pas d'opération non conforme a l'importation du swf et ki si possi Playlist [ par flashman007 ] je voudrais faire un lecteur en flash qui lit les fichier .m3u (playlist)comment pourrais-je faire???merci a toushugo the best now and forever playlist http:..... [ par flashman007 ] voila mon probleme est de faire une playlist en flash pour une radio avec un url de type http://193.251.12.122:8000/ou un truc comme ca.Mais toutes me probleme xml il prends la version du cache [ par 8fanfan8 ] je m explique : ca fait deja trois jours que je me galere et je trouve pas pourtant ja i bien compris ce qu il fallait faire mais bon.... j ai fait un Playlist aléatoire [ par oxigene ] B'jourEn fait une question simple, j'ai un son d'ambience sur mon site mais je voudrai que ça change a chaque visite, genre une playlist aleatoire.Voi Playlist [ par atchoumen ] Bonjour,J'ai un lecteur mp3 tous simple en flah qui va chercher les mp3 indiqué dans un dossiersource: var liste:Array = new Array();l &nbsp encodeur flv [ par cherbinet ] Bonjour à tous, je suis à la recherche d'un encodeur flv ( bon jusqu'ici rien d'insurmontable), mais tournant sous LINUX ( et là j'ai p Lire un fichier M3u en streaming avec un lecteur flash [ par erbarraud ] Bonjouur Voila nous sommes une petite webradio et nous aimerion pouvoir proposer un lecteur flash a nos auditeurs afin qu ils puissent eviter de passe Cherche lecteur MP3 + discret + lecture aléatoire + playlist [ par malibu2k ] Bonjour, Je suis à la recherche d'un lecteur MP3 en flash. Avec comme option : - être petit pour se mettre dans un coin - au moment du char comment creer une barre de volume son? [ par burritoboy ] Salut!alors voila, je suis flasheur ultra débutant. Du coup, j'ai acheté le bouquin vendu par macromedia, et j'ai scripté un lecteur mp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,574 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales