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

Programmation multimédia/Jeux Python Discussion :

Pygame temps de musique


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Pygame temps de musique
    Bonjour,

    Je n'arrive pas à avoir le temps en direct d'une musique, j'utilise la commande pygame.mixer.music.get_pos(), mais je sais pas comment répéter cette commande en boucle pour que elle me donne sans cesse le temps...

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    c'est quoi le "temps d'une musique", la durée du morceau ? le rythme ? l'année de sa composition ?

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    La solution la plus naïve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while true:
        print pygame.mixer.music.get_pos()
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Juste le temps ou en est la musique, je voulais aussi avoir le temps total de la musique mais j'ai laissé tombé je trouvais rien. Sinon je vais test while true, mais j'avais déjà test un truc similaire, sauf que du coup quand sa me donne le temps direct de la musique j'avais le lecteur qui crashais le temps que cela m'affichais le temps pu en était la musique sur python

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Je confirme le while true fait crash ma fenetre... Le fait de trop faire une action infini donne trop de travaille à python je pense... Du coup sa me bloque :/

    EDIT: j'ai enfin trouvé :'), pour ceux qui en aurait besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def temps():
        t = Timer(1.0, temps)
        t.start()
        print (pygame.mixer.music.get_pos())
     
     
    temps()

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Le while true: ne crash pas la fenêtre, mais comme cela provoque un non rafraichissement de la fenêtre, celle-ci est considérée comme "crashée" par le système.
    C'est bien pour cela que je parlais de solution naïve, vu que je ne pouvais pas vous indiquer plus sans mieux connaitre votre code/cas d'utiliser. L'idée du timer est bonne
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Du coup j'ai une autre question... Comment je pourrais convertir ces millisecondes afin de les afficher sur la fenêtre en heure, minute et seconde?
    Et ensuite comment avoir le temps total d'une musique ouvert avec askopenfilename?

    EDIT: pour info je pensais au debut connaitre le chemin du fichier ouvert comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def Ouvrir():
        """Définition de l'ouverture et le chargement d'un fichier"""
        filename = tkinter.filedialog.askopenfilename(title="Ouvrir votre fichier audio",filetypes=[('mp3 files','.mp3'),('all files','.*')])
        pygame.mixer.music.load(filename)
        pygame.mixer.music.play()
        dir_path = os.path.dirname(os.path.abspath(filename))
        print(dir_path)
    mais sa me donne cela:
    C:\Users\Utilisateur\Music

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Pour le temps total, il existe une triche (que l'on peux utiliser sur les fichiers "normaux"), c'est de se placer à la fin avec set_pos() ... le problème est le paramètre. Peut être -1 passe, peut être pas (à priori non : http://www.libsdl.org/projects/SDL_m...xer_frame.html ). Donc peut être avec une valeur très très grande .
    Sinon, la conversion de milliseconde vers seconde/minute/heure, ce ne sont que des mathématiques. Vous savez que une seconde, c'est 1000 millisecondes, une minute, c'est 60 secondes et ainsi de suite. Piste : les divisions et les modulos
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    j'avais mis cette edit trop tard ^^:
    EDIT: pour info je pensais au debut connaitre le chemin du fichier ouvert comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def Ouvrir():
        """Définition de l'ouverture et le chargement d'un fichier"""
        filename = tkinter.filedialog.askopenfilename(title="Ouvrir votre fichier audio",filetypes=[('mp3 files','.mp3'),('all files','.*')])
        pygame.mixer.music.load(filename)
        pygame.mixer.music.play()
        dir_path = os.path.dirname(os.path.abspath(filename))
        print(dir_path)
    mais sa me donne cela:
    C:\Users\Utilisateur\Music

    Sinon j'y avais pensé de démarrer à la fin, mais du coup mon soucis était que je connaissais justement pas le temps de fin ^^'. Je vais essayer sur cette piste même si je pensais que yavais moyen en connaissant le chemin du fichier d'extraire ces infos avec cette méthode : getsize(filename) → Retourne la taille d'un fichier (en octets)

    Pour cette astuce des divisons j'avais déja essayé, j'avais convertie en seconde en divisant par mille. puis j'ai divisé par 60 et la je me retrouve avec un jolie nombre à virgule sans savoir quoi en faire... Je vais continué à regarder sa

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    La taille en octets n'indiquera pas le temps de la musique.

    Pour askopenfilename, peut être une erreur dans les options, ou dans son utilisation (avez vous bien sélectionner un fichier).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Oui mais je pensais qu'il y aurait peut être une commande pour extraire le temps ^^'. j'ai bien sélectionner une musique qui démarre. cela me donne le chemin de son dossier :/.

    EDIT: les solutions pour le temps de musique marche pas... Du coup je cherche un peu partout si y'a pas un détails qui m'échapperait pour trouver le temps.

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Pouvez-vous essayer de corriger le souci en vous basant (et en testant) dans un programme à part, l'exemple de cette page : http://tkinter.unpythonic.net/wiki/tkFileDialog
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    les solutions pour le temps de musique marche pas... Du coup je cherche un peu partout si y'a pas un détails qui m'échapperait pour trouver le temps.

    Et lexemple sur se site crash O_o

    EDIT: j'ai trouvé xD:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def Ouvrir():
        """Définition de l'ouverture et le chargement d'un fichier"""
        filename = tkinter.filedialog.askopenfilename(title="Ouvrir votre fichier audio",filetypes=[('mp3 files','.mp3'),('all files','.*')])
        pygame.mixer.music.load(filename)
        pygame.mixer.music.play()
        chemin = os.path.dirname(os.path.abspath(filename))
        print(chemin)
    l'avant dernière ligne faut retirer os.path.dirname qu'elle nul

    du coup j'ai voulu mettre un texte dans mon canvas qui donne le titre de ma musique avec cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def Ouvrir():
        """Définition de l'ouverture et le chargement d'un fichier"""
        filename = tkinter.filedialog.askopenfilename(title="Ouvrir votre fichier audio",filetypes=[('mp3 files','.mp3'),('all files','.*')])
        pygame.mixer.music.load(filename)
        pygame.mixer.music.play()
        """Affiche nom du fichier"""
        Nom = os.path.basename(os.path.abspath(filename))
        fond0.create_text(racine0.winfo_screenwidth()/3-racine0.winfo_screenwidth()/32-6,
        racine0.winfo_screenheight()/1.5-((racine0.winfo_screenheight()/1.5-racine0.winfo_screenheight()/1.76)/2),
        fill='white',text=Nom)
    Sauf que quand je demarre une autre le titre se met sur l'ancien car sa modifie pas le teste mais pose par dessus :/. Une piste?

  14. #14
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Il faut forcer la suppression de l'ancien texte. Donc il faut garder l'ancien texte dans une variable.
    Ou même, ne faire qu'une variable, ne jamais la supprimer mais, remplacer le texte dans l'élément Text.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    j'ai fait sa et sa marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def Ouvrir():
        """Définition de l'ouverture et le chargement d'un fichier"""
        filename = tkinter.filedialog.askopenfilename(title="Ouvrir votre fichier audio",filetypes=[('mp3 files','.mp3'),('all files','.*')])
        pygame.mixer.music.load(filename)
        pygame.mixer.music.play()
        """Affiche nom du fichier"""
        Nom = os.path.basename(os.path.abspath(filename))
        x=4
        y=x+1
        fond0.delete(y)
        fond0.create_text(racine0.winfo_screenwidth()/3-racine0.winfo_screenwidth()/32-6,
        racine0.winfo_screenheight()/1.5-((racine0.winfo_screenheight()/1.5-racine0.winfo_screenheight()/1.76)/2),
        fill='#592310',text=Nom)
    Sauf que sa marche pas, il faut que la valeurs dans fond0.delete() soit égal à 4 puis augmente de 1 à chaque tour

Discussions similaires

  1. [Multimédia] gestion de temps de la musique
    Par httrack dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/11/2012, 01h30
  2. [pygame] Comparaison de temps buggée ?
    Par darkrojo dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 11/06/2011, 09h15
  3. detecter les pics, basse, percution, dans une musique (temps reel)
    Par sliders_alpha dans le forum Traitement du signal
    Réponses: 7
    Dernier message: 12/01/2010, 22h19
  4. [Pygame]Gérer deux touches appuyées en même temps
    Par yetimothee dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 19/11/2008, 20h13
  5. Réponses: 5
    Dernier message: 01/07/2005, 12h46

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