IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Lecture mp3 dans une appli compilée [Python 3.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    août 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2019
    Messages : 34
    Points : 14
    Points
    14
    Par défaut Lecture mp3 dans une appli compilée
    Bonjour

    D'abord merci pour le temps que vous consacrez à aider les débutants comme moi.

    Je suis professeur en primaire et, pour une activité pédagogique, j'ai développé une application en python 3.10 qui émet certains sons à certains moments.
    J'ai déjà réalisé un script fonctionnel qui me satisfait, mais il fonctionne dans la console et il nécessite l'installation de l'environnement Python et de certaines dépendances ("playsound" par exemple)
    Hors, je souhaite transmettre ce programme à des collègues. donc je dois compiler mon application (Linux, Windows et OSX).
    Pour ce faire, je suis en train créer une interface TKinter.

    J'ai commencé par une application d'essai simple, qui joue deux fichiers .mp3 quand on appuie sur un bouton. J'utilise PyCharm 2022.
    - Le script fonctionne parfaitement : le bouton déclenche la lecture des mp3.
    - La compilation (sous Ubuntu 22.04.1) avec "pyinstaller" se passe sans problème.
    - Lors de l’exécution du fichier d'application : la fenêtre s'ouvre bien avec son texte et son bouton.

    --> Cependant, quand je clique sur le bouton "Jouer le mp3" de l'application compilée, aucun son n'est audible... Même si j'ajoute les fichiers .mp3 dans le même dossier que l'appli.

    Auriez-vous une idée ?

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    """
    Installer Playsound :
    pip3.10 install playsound
    https://pypi.org/project/playsound/
     
    Aide TKinter : https://www.youtube.com/watch?v=N4M4W7JPOL4&
     
    Installer pyinstaller :
    pip3.10 install pyinstaller
     
    Installer UPX pour obtenir une appli plus légère
    sudo apt-get update -y
    sudo apt-get install -y upx
    """
     
    from tkinter import *
    from playsound import playsound
     
    back_color = "#C4AFAC"
     
     
    # Création de la fonction qui va jouer
    def jouer_mp3():
        playsound('texte-fr.mp3')
        playsound('texto-es.mp3')
     
     
    # Créer une fenêtre
    window = Tk()
     
    # Personnaliser la fenêtre
    window.title("Lire un mp3")
    window.geometry("480x240")
    window.minsize(240, 180)
    # window.iconbitmap("Logo.ico") # Impossible à faire fonctionner...
    window.config(background=back_color)
     
    # Création d'un cadre
    frame = Frame(window, bg=back_color)   # , bd= 1, relief=SUNKEN
     
    # Ajout de Widgets
    label_title1 = Label(frame, text="Cliquez pour écouter", font=("arial", 25), bg=back_color, fg="white")
    label_title1.pack()
    label_title2 = Label(frame, text="Programme de test", font=("courier", 15), bg=back_color, fg="white")
    label_title2.pack()
     
    # Ajout d'un bouton
    mp3_button = Button(frame,
                        text="Jouer le mp3",
                        font=("Times new roman", 20),
                        bg="white",
                        fg="black",
                        command=jouer_mp3
                        )
    mp3_button.pack(pady=25)
     
    # Affichage du cadre
    frame.pack(expand=YES)
     
    # Afficher la fenêtre
    window.mainloop()
    Voici les fichiers .mp3 :
    Fichiers-mp3.zip

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 20 302
    Points : 35 090
    Points
    35 090
    Par défaut
    Salut,

    Citation Envoyé par Yobeco Voir le message
    Auriez-vous une idée?
    Déjà vous ne compilez rien du tout mais fabriquer un "package" qui pourra être déployé sur des postes clients sans avoir à installer Python, les bibliothèques et l'application.

    Pour le problème:
    Citation Envoyé par Yobeco Voir le message
    aucun son n'est audible... Même si j'ajoute les fichiers .mp3 dans le même dossier que l'appli.
    Si vous prenez soin de préciser "Même si..." on peut supposer que ça ne trouve pas le fichier mp3 dans le répertoire courant et à fortiori, ça ne joue pas de son...
    Et normalement, vous devriez vous jeter dans la documentation de pyinstaller pour apprendre comment ajouter des fichiers de données au package...

    Citation Envoyé par Yobeco Voir le message
    D'abord merci pour le temps que vous consacrez à aider les débutants comme moi.
    Là vous faites le débutant qui a oublié de débuter car les messages d'erreurs que Python affiche ne sont pas à jeter... et le mode d'emploi d'un outil tel que pyinstaller est à lire...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre expérimenté
    Avatar de Hominidé
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    juin 2018
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : juin 2018
    Messages : 782
    Points : 1 340
    Points
    1 340
    Billets dans le blog
    3
    Par défaut
    Bonjour,
    - La compilation (sous Ubuntu 22.04.1) avec "pyinstaller" se passe sans problème.
    Juste pour préciser au cas où, que l'utilisation de pyinstaller sur ubuntu fera un paquet pour cette distribution mais non pour windows...

    J'ajouterai que pour cette distribution, vu qu'elle dispose nativement d'un interpréteur python, je ne vois personnellement pas d'intérêt de passer par pyinstaller pour diffuser son programme.
    Cette année, je fais mumuse sur Androïd avec python/kivy ...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    août 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2019
    Messages : 34
    Points : 14
    Points
    14
    Par défaut
    Merci pour votre réponse rapide.

    Les fichiers mp3 sont bien dans le répertoire courant du script. C'est pour cela que celui-ci fonctionne bien.

    Citation Envoyé par wiztricks Voir le message
    Si vous prenez soin de préciser "Même si..." on peut supposer que ça ne trouve pas le fichier mp3 dans le répertoire courant et à fortiori, ça ne joue pas de son...
    - W
    J'ai oublié de préciser que j'avais utilisé l'option "--onefile"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pyinstaller MP3+TKinter.py --onefile
    "pyinstaller" a donc généré un paquet exécutable unique dans un dossier nommé "dist".
    Pour moi, naïvement, les fichiers mp3 devraient être intégrés dans cette archive exécutable...
    Mais comme ça ne fonctionne pas, j'ai quand-même essayé d'ajouter les .mp3 dans le répertoire "dist", sans succès...

    Cependant, vous avez raison, je vais mieux lire la documentation.

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2007
    Messages
    4 358
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : décembre 2007
    Messages : 4 358
    Points : 9 076
    Points
    9 076
    Billets dans le blog
    6
    Par défaut
    Bonjour

    On peut demander au lancement de pyinstaller d'intégrer des fichiers "non-python" (image, texte, mp3, etc...): voir le fichier de configuration du traitement.

    Mais ce qu'on appelle exécutable fait par pyinstaller n'est en fait qu'un archivage de tous les fichiers nécessaires à l'exécution, y compris de l'interpréteur Python lui-même. Quand on lance l'exécution, le programme se désarchive dans un dossier temporaire. Mais il existe une méthode, décrite dans la doc, qui permet au programme de trouver lui-même où il est, de façon à pouvoir accéder aux fichiers "non-python". Voir ici:

    https://pyinstaller.org/en/stable/ru...formation.html
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    août 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2019
    Messages : 34
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    Juste pour préciser au cas où, que l'utilisation de pyinstaller sur ubuntu fera un paquet pour cette distribution mais non pour windows...
    J'ajouterai que pour cette distribution, vu qu'elle dispose nativement d'un interpréteur python, je ne vois personnellement pas d'intérêt de passer par pyinstaller pour diffuser son programme.
    Merci pour la remarque

    En fait, je dois bien avouer qu'il y a peu de me collègues qui utilisent Linux de toutes les façons... Mais comme tu le dis justement, quand on compile sous Linux, on obtient une appli pour Linux. Alors si déjà pour moi sous Ubuntu, le son ne fonctionne pas, il y a peu de chance qu'il fonctionne quand je le compilerai sur un autre système...

    J'ai accès à un Mac, donc quand j'arriverai à faire un package qui fonctionne bien sous Linux, j’essaierai sous OSX.
    Et pour Windows, j'essaye de trouver un solution du côté de Virtual Box.

  7. #7
    Membre régulier
    Homme Profil pro
    Animateur Numérique
    Inscrit en
    février 2013
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Animateur Numérique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : février 2013
    Messages : 83
    Points : 123
    Points
    123
    Par défaut
    Salut,

    Citation Envoyé par Yobeco Voir le message
    J'ai accès à un Mac, donc quand j'arriverai à faire un package qui fonctionne bien sous Linux, j’essaierai sous OSX.
    Et pour Windows, j'essaye de trouver un solution du côté de Virtual Box.
    J'utilise cette fonction qui prend en paramètre le chemin relatif du fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import os
    import sys
    #
    #
    def resourcePath(relativePath):
            if hasattr(sys, '_MEIPASS'):
                return os.path.join(sys._MEIPASS, relativePath)
            return os.path.join(os.path.abspath("."), relativePath)
     
    playsound(resourcePath('texte-fr.mp3'))
    J'ai un doute pour la création du package avec Virtual Box.

  8. #8
    Membre expérimenté
    Avatar de Hominidé
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    juin 2018
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : juin 2018
    Messages : 782
    Points : 1 340
    Points
    1 340
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Yobeco Voir le message
    Merci pour la remarque

    En fait, je dois bien avouer qu'il y a peu de me collègues qui utilisent Linux de toutes les façons... Mais comme tu le dis justement, quand on compile sous Linux, on obtient une appli pour Linux. Alors si déjà pour moi sous Ubuntu, le son ne fonctionne pas, il y a peu de chance qu'il fonctionne quand je le compilerai sur un autre système...

    J'ai accès à un Mac, donc quand j'arriverai à faire un package qui fonctionne bien sous Linux, j’essaierai sous OSX.
    Et pour Windows, j'essaye de trouver un solution du côté de Virtual Box.
    Bonjour,
    Pour mac, ubuntu, je créerai simplement une archive (.zip, .tar, ...) du répertoire contenant le programme.py et ses mp3...
    Cette année, je fais mumuse sur Androïd avec python/kivy ...

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2007
    Messages
    4 358
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : décembre 2007
    Messages : 4 358
    Points : 9 076
    Points
    9 076
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par Yobeco Voir le message
    Alors si déjà pour moi sous Ubuntu, le son ne fonctionne pas, il y a peu de chance qu'il fonctionne quand je le compilerai sur un autre système...
    Le problème cité est connu, et la solution est dans la doc: voir ma réponse précédente:
    https://www.developpez.net/forums/d2.../#post11917255
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  10. #10
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    3 321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 3 321
    Points : 8 016
    Points
    8 016
    Par défaut
    Hello,
    Citation Envoyé par Yobeco Voir le message
    Je suis professeur en primaire et, pour une activité pédagogique, j'ai développé une application en python 3.10 qui émet certains sons à certains moments.
    J'ai déjà réalisé un script fonctionnel qui me satisfait, mais il fonctionne dans la console et il nécessite l'installation de l'environnement Python et de certaines dépendances ("playsound" par exemple)
    Hors, je souhaite transmettre ce programme à des collègues. donc je dois compiler mon application (Linux, Windows et OSX).
    Si sur toutes les plateformes il y a LibreOffice ou OpenOffice installé pourquoi ne pas utiliser l'un ou l'autre : on peut faire des IHM ( formulaire , boîtes de dialogue) interactifs en Basic ou Python et on peut jouer des mp3.
    En pièce jointe un fichier calc ods qui permet de jouer un son mp3 ou un son de la galerie LibreOffice. Le code est en Basic mais pourrait être en python . Les 2 boutons présents dans la feuille calc pourraient être dans une boîte de dialogue.

    Nom : TestSonLO.png
Affichages : 69
Taille : 24,1 Ko

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  11. #11
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    août 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2019
    Messages : 34
    Points : 14
    Points
    14
    Par défaut [Résolu]
    Citation Envoyé par Diablo76 Voir le message
    J'utilise cette fonction qui prend en paramètre le chemin relatif du fichier.
    Salut Diablo76

    Effectivement, mon application retrouve bien le fichier .mp3 une fois dépaquetée !!!
    Merci pour cette fonction très utile !
    --> Maintenant, le mp3 est bien joué quand je clique sur le bouton.

    Je vais continuer à utiliser cette technique pour le développement de mon application complète de "chronomètre autonome".

    Si ça peut être utile, voici mon code complet fonctionnel (de la fenêtre de test de lecture mp3):
    Il faut bien mettre le fichier mp3 dans la racine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    """
    Speed Booking
     
    Installer Playsound :
    pip install playsound
    https://pypi.org/project/playsound/
     
    Bases de TKinter : https://www.youtube.com/watch?v=N4M4W7JPOL4&
     
    Pour la compilation
    Installer UPX pour obtenir une appli plus légère
    sudo apt-get update -y
    sudo apt-get install -y upx
     
    Informations pour intégrer les médias :
    https://medium.com/swlh/easy-steps-to-create-an-executable-in-python-using-pyinstaller-cc48393bcc64
    https://www.askpython.com/python/pyinstaller-executable-files
     
    """
     
    from tkinter import *
    from playsound import playsound
     
    # Bibliothèques nécessaires pour l'utilisation du chemin relatif du fichier mp3
    import os
    import sys
     
     
    # Création de la fonction pour rendre locale la recherche du fichier son (Nécessaire lors de l'execution du paquet)
    def resourcePath(relativePath):
        if hasattr(sys, '_MEIPASS'):
            return os.path.join(sys._MEIPASS, relativePath)
        return os.path.join(os.path.abspath("."), relativePath)
     
     
    # Variable pour modifier la couleur d'arrière plan de tous les Widgets
    back_color = "#C4AFAC"
     
     
    # Création de la fonction qui va jouer le son
    def jouer_mp3():
        # playsound('texto-es.mp3')
        playsound(resourcePath('texto-es.mp3'))         # Indication du chemin relatif du fichier mp3
     
     
    # Création de la fenêtre principale
    window = Tk()
     
    # Personnalisation la fenêtre
    window.title("Lire un mp3")
    window.geometry("480x240")
    window.minsize(240, 180)
    # window.iconbitmap("Logo.ico") # Impossible à faire fonctionner...
    window.config(background=back_color)
     
    # Création d'un cadre
    frame = Frame(window, bg=back_color)   # , bd= 1, relief=SUNKEN
     
    # Ajout des Widgets contenant les textes
    label_title1 = Label(frame, text="Cliquez pour écouter", font=("arial", 25), bg=back_color, fg="white")
    label_title1.pack()
    label_title2 = Label(frame, text="Programme de test", font=("courier", 15), bg=back_color, fg="white")
    label_title2.pack()
     
    # Ajout d'un bouton
    mp3_button = Button(frame,
                        text="Jouer le mp3",
                        font=("Times new roman", 20),
                        bg="white",
                        fg="black",
                        command=jouer_mp3
                        )
    mp3_button.pack(pady=25)
     
    # Affichage du cadre contenant les textes et le bouton
    frame.pack(expand=YES)
     
    # Affichage de la fenêtre principale
    window.mainloop()

    Et voici également la commande "pyinstaller" qui m'a permis d'empaqueter l'application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pyinstaller --onefile --add-data "texto-es.mp3:." MP3+TKinter.py
    Si j'ai bien compris les docs que j'ai lues, pour un empaquetage sous Windows, il faudra remplacer les ":" par ";" dans l'argument de --add-data
    Le séparateur n'est pas le même.


    Merci à tous pour votre contribution !

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 20 302
    Points : 35 090
    Points
    35 090
    Par défaut
    Citation Envoyé par Yobeco Voir le message
    Si ça peut être utile, voici mon code complet fonctionnel (de la fenêtre de test de lecture mp3):
    Il faut bien mettre le fichier mp3 dans la racine.
    Si c'est juste pour dire qu'il vaut mieux lire la documentation avant de faire n'importe quoi...
    Imaginez que les autres fassent comme vous: pas de recherche sur Internet ou dans la doc.
    Par quel hasard vont-ils tomber sur cette discussion pour en profiter?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    août 2019
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nicaragua

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2019
    Messages : 34
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si c'est juste pour dire qu'il vaut mieux lire la documentation avant de faire n'importe quoi...
    Imaginez que les autres fassent comme vous: pas de recherche sur Internet ou dans la doc.
    Par quel hasard vont-ils tomber sur cette discussion pour en profiter?

    - W
    Je suis désolé si je vous ai offensé.

    Je tiendrai compte de votre avis en me documentant plus avant de retourner sur ce forum.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Utilisation d'une DLL de noyau en C++ compilée sous Eclipse dans une appli C# sous VS2013
    Par salmaneO dans le forum Développement Windows
    Réponses: 2
    Dernier message: 23/06/2014, 15h23
  2. Lecture de code-barres sur mobile dans une appli web
    Par Lino Léum dans le forum Mobiles
    Réponses: 0
    Dernier message: 05/01/2012, 11h21
  3. [C#] Ressources importantes dans une appli .net
    Par tiboleo dans le forum Windows Forms
    Réponses: 31
    Dernier message: 07/09/2004, 20h27
  4. Réponses: 3
    Dernier message: 23/06/2004, 22h17
  5. Se servir du login/passwd window dans une appli
    Par ericb dans le forum Windows
    Réponses: 8
    Dernier message: 26/05/2004, 18h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo