Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parTatienne Fernandes Modifié depuis plus de 11 années
1
JérOli Media Player Auteurs : J.FELLUS & O.NESTY
2
A quoi ça sert ???? JérOli Media Player
3
A quoi ça sert ???? 1.Gestionnaire de PlayList JérOli Media Player
4
A quoi ça sert ???? 1.Gestionnaire de PlayList 2.Outil de Recherche de Mp3 dans larborescence JérOli Media Player
5
A quoi ça sert ???? 1.Gestionnaire de PlayList 2.Outil de Recherche de Mp3 dans larborescence 3.Player JérOli Media Player
6
Exemples de fonctionnement
7
Approche : « Je cherche tous les morceaux dOscar Peterson qui datent de plus de 10 ans »
8
Exemples de fonctionnement Approche : « Jai entendu parler de Songs in the key of life, je ne sais pas si cest le nom de lalbum ou le titre dune chanson… que me propose le JérOli Media Player ??? »
9
Exemples de fonctionnement Actions sur la PlayList
10
Exemples de fonctionnement Ecoute tranquille de musiques tout en faisant autre chose
11
Dissection du JérOli Media Player Ses aspects Internes
12
Gestionnaire : classes principales
13
C Main : Point de démarrage du programme C
14
Gestionnaire : classes principales CCApplication : classe principale d'une application CC Main : Point de démarrage du programme
15
Gestionnaire : classes principales CC Application : classe principale d'une application CC Interface Configuration Player PlayList en Cours Main : Point de démarrage du programme
16
Gestionnaire : classes principales CCApplication : classe principale d'une application CC Interface Configuration Player PlayList en Cours Méthodes : Ajouter à la PlayList Retirer … Charger une PlayList Look&Feel Main : Point de démarrage du programme
17
Gestionnaire : classes principales CCApplication : classe principale d'une application CC CCConfig : classe qui va gérer les fonctions de configurations Main : Point de démarrage du programme
18
Gestionnaire : classes principales CCApplication : classe principale d'une application CC CCConfig : classe qui va gérer les fonctions de configurations CCPlayList : Liste de MP3Desc Main : Point de démarrage du programme C
19
Gestionnaire : classes principales CCApplication : classe principale d'une application CC CCConfig : classe qui va gérer les fonctions de configurations CCPlayList : Liste de MP3Desc Méthode : Add, remove … IsPlaying? Déplacement de MP3 Navigation (précédent, suivant, stop, play) Main : Point de démarrage du programme C
20
Gestionnaire : classes principales CCApplication : classe principale d'une application CC CCConfig : classe qui va gérer les fonctions de configurations CC PlayList : Liste de MP3Desc Méthode : Add, remove … IsPlaying? Déplacement de MP3 Navigation (précédent, suivant, stop, play) Player C Main : Point de démarrage du programme
21
Gestionnaire : classes principales CIInterface Interface textuelle Interface Graphique Gestion du Splash Screen Mode Quick Play !
22
Gestionnaire : classes principales CIInterface Interface textuelle Interface Graphique Fenêtre Principale Fenêtre Quick Play !
23
Gestionnaire.repertoire Classes qui gèrent le contenu de larborescence C Répertoire (Arborescence) C Vecteur de Données (tableau dynamique de MP3Desc ) C Méthode : Filtrage Tri Random [Debug]
24
Gestionnaire.repertoire Classes qui gèrent le contenu de larborescence C Répertoire (Arborescence) C CC MP3Desc (Description dun fichier Mp3) * tag ID3 Lire le tag (sous forme compacte « byte[ ] ») via un Tag Reader * Récupérer les champs * Passer à travers des filtres * Comparaison par critères (critère vector)
25
Aspect Visuel…
26
Interface Graphique Aspect Visuel…
27
Interface Graphique Aspect Visuel… CC WSplashScreen : gère la fenêtre de chargement
28
Interface Graphique Aspect Visuel… CCWConfig : gère toute la fenêtre de configuration CC WSplashScreen : gère la fenêtre de chargement
29
Interface Graphique Aspect Visuel… CCWConfig : gère toute la fenêtre de configuration CC CCWFenetrePrincipale : gère toute la fenêtre principale WSplashScreen : gère la fenêtre de chargement
30
Interface Graphique Aspect Visuel… CCWConfig : gère toute la fenêtre de configuration CC CCWFenetrePrincipale : gère toute la fenêtre principale CCWQuickPlay : gère toute la fenêtre Quick Play ! WSplashScreen : gère la fenêtre de chargement
31
Interface Graphique Aspect Visuel… CCWConfig : gère toute la fenêtre de configuration CC CCWFenetrePrincipale : gère toute la fenêtre principale CCWQuickPlay : gère toute la fenêtre Quick Play ! WSplashScreen : gère la fenêtre de chargement CCWRechecheRapide : Affiche le résultat de la recherche rapide
32
Aspect Visuel…
33
Composants Aspect Visuel…
34
Composants Aspect Visuel… CC CCritèreTri : gère le choix des Critères de recherche
35
Composants Aspect Visuel… CCCInfos : gère le tableau dinformation CC CCritèreTri : gère le choix des Critères de recherche
36
Composants Aspect Visuel… CCCInfos : gère le tableau dinformation CC CCCPlaylist : gère la Liste de chansons CCritèreTri : gère le choix des Critères de recherche
37
Composants Aspect Visuel… CCCInfos : gère le tableau dinformation CC CCCPlaylist : gère la Liste de chansons CCCTitreBlock : Affiche le titre de chaque module CCritèreTri : gère le choix des Critères de recherche
38
ORGANISATION DE LARBORESCENCE Tri & Filtrage
39
ETAPE 1 : FILTRAGE REPERTOIREMP3DESC Visible ? FILTRE Filtrer
40
ETAPE 1 : FILTRAGE Classe Filtre : Méthode dexécution du filtre C
41
ETAPE 1 : FILTRAGE N x nbFiltres comparaisons à effectuer (nbFiltres << N) C = o(N)
42
ETAPE 2 : TRI PAR CRITERES REPERTOIREVector CRITERES Vector MP3DESC Sort ( ) Custom COMPARATOR Custom compareTo ( ) method Visible ?
43
ETAPE 2 : TRI PAR CRITERES Classe Filtre : Méthode dexécution du filtre C
44
ETAPE 2 : TRI PAR CRITERES Classe MP3Desc : méthode de comparaison par critères C
45
ETAPE 2 : TRI PAR CRITERES compareTo() : nbCriteres comparaisons à effectuer (dans le pire des cas) sort() : algorithme issu de la bibliothèque de classes standard – complexité en n.log(n) nbCriteres << N C = o(N.log(N))
46
lBound : int rBound : int Parent : MP3Node ETAPE 3 : AFFICHAGE HIERARCHIQUE CRepertoireTree ( ~Jtree) DefaultTreeModel MP3TreeModel Repertoire MP3Node
47
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 AX1 AX2 AY1 BX3 BX4 BY1 BY2 CX1 CX5 CX12 CY1 CZ109 CZ110
48
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 AX1 AX2 AY1 BX3 BX4 BY1 BY2 CX1 CX5 CX12 CY1 CZ109 CZ110
49
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 AX1 AX2 AY1 BX3 BX4 BY1 BY2 CX1 CX5 CX12 CY1 CZ109 CZ110
50
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 AX1 AX2 AY1 BX3 BX4 BY1 BY2 CX1 CX5 CX12 CY1 CZ109 CZ110 Root
51
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 AX1 AX2 AY1 BX3 BX4 BY1 BY2 CX1 CX5 CX12 CY1 CZ109 CZ110 Root 0 1 2
52
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 X1 X2 Y1 X3 X4 Y1 Y2 X1 X5 X5 Y1 Z109 Z Root 0 1 2 A B C
53
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 X1 X2 Y1 X3 X4 Y1 Y2 X1 X5 X5 Y1 Z109 Z Root 0 1 2 A B C
54
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 X1 X2 Y1 X3 X4 Y1 Y2 X1 X5 X5 Y1 Z109 Z Root 0 1 2 A B C
55
ETAPE 3 : AFFICHAGE HIERARCHIQUE CRITERE 1CRITERE 2CRITERE 3 1 2 1 X3 X4 Y1 Y2 X1 X5 X5 Y1 Z109 Z Root 0 1 2 A B C X Y 0 1
56
ETAPE 3 : AFFICHAGE HIERARCHIQUE Repertoire 1 2 1 3 4 1 2 1 5 5 1 109 MP3Node lBound rBound Childs
57
ETAPE 3 : AFFICHAGE HIERARCHIQUE Repertoire MP3 A MP3 B MP3 C MP3 D MP3 E MP3 F MP3 G MP3 H MP3 I MP3 J MP3 K MP3 L MP3 M MP3Node lBound rBound Childs GetChildCount () Nombre de valeurs différentes dans [ lBound,rBound ] GetChild(int i) Parcours jusquà trouver i valeur différentes et retourne lindice courant GetParent () Chaque nœud garde une trace de son père TreeModel overrides parent
58
ETAPE 3 : AFFICHAGE HIERARCHIQUE On doit accéder n x nbCriteres fois à un mp3 du répertoire nbCriteres << n C = o(N)
59
Complexité finale de lopération Filtrage + Tri C = o(N) + o(N.log(N)) + o(N) C ~ o ( N.log(N) )
60
Les Librairies Externes Jlayer : le player TinyLAF : les thèmes de linterface Graphique
61
Les points Négatifs… Pas de Menu Clic-Droit pourtant implémenter Après avoir fait « suivant » la chanson daprès ne se joue pas Pas de lecture de durée pas dindication davancement dans la lecture pas de bouton « pause » fonctionnel ! Pas dinterface Textuelle Problème de superposition de fenêtres
62
Les plus de notre projet… Quick Play ! Recherche Rapide Capacités de Filtrage et Tri avancées Plusieurs thèmes Redimensionnement pratique de chaque module Portabilité des PlayLists générées par notre application vers dautres plus connues comme Real Player, etc.
63
Les futures mises à jour de notre projet… Tag ID3 v1.1, v2 Edition des tags Durée, avancement Le Drag N Drop
64
Remerciements P.LAROQUE & JL.BOURDON (pour le cours de JAVA) B.DERDOURI & M.NAÏMI (pour le cours de calcul de la complexité) V.SANS (pour le cours dUML) Les Concepteurs de la JAVADOC
65
Modèle UML de notre projet interfaceMode (boolean) Application thread PlayerInterface menuPrincipal InterfaceTexte fenetrePrincipale InterfaceGraphique Root (String) Repertoire configData (Map<String,String) Config Tag (byte[]) isVisible (boolean) MP3Desc fromEnd (boolean) tagSize (int) TagReader Name (String) Opération (String) Value (Object) Filtre Criteres (String[]) CriteresVector Name (String) Size (int) Sortable (boolean) Field isPlaying (boolean) Filename (String) Playlist FILTRER
66
To be continue…
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.