Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pygame .mp3

chemin d'accés

    14 août 2019 à 16:24:23

    Bonjour ou bonsoir, je cherche a faire un lecteur mp3 en utilisant tinker et pygame , je suis un grand debutant

    mais voila au moment de choisir un fichiez et de le jouer , mon programme plante

    pour info j'utilise pyScrypter avec python 3.4*

    import pygame
    from tkinter import filedialog
    from tkinter import *
    
    zic = filedialog.askopenfilename(title = "selection musique",filetypes = (("mp3 files","*.mp3"),("all files","*.*")))
    pygame.mixer.init()
    pygame.mixer.Sound(zic).play()
    


    voila mon code, je suis bien en uft-8

    Message	Nom de Fichier	Ligne	Position	
    Traceback				
        <module>	<module1>	7		
    error: Unable to open file 'C:/Users/c\xe9line/Documents/Elektronomia - Magic [Mpgun.com].mp3'				
    		
    


    voila mon erreur

    et le chemin d'acces du fichiez de base est : C:/Users/céline/Documents/Elektronomia - Magic [Mpgun.com].mp3 

    je coprend vraiment rien ;-; quelqu'un pour m'aider ?

    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2019 à 16:36:11

      À tout hasard, est-ce que tu peux le mettre dans un chemin qui ne possède pas de caractères non-ascii ?
      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2019 à 16:48:50

        c'est a dire le mettre par exemple a la base du pc ? avant l'utilisateur ?

        C:/Elektronomia - Magic [Mpgun.com].mp3 

        exatement la meme erreur :(

        -
        Edité par Pigi1 14 août 2019 à 16:51:16

        • Partager sur Facebook
        • Partager sur Twitter
          14 août 2019 à 17:04:39

          Essaye de renommer ton fichier en genre : Elektronomia_Magic.mp3
          • Partager sur Facebook
          • Partager sur Twitter
            14 août 2019 à 17:07:24

            Toujour la meme erreur...
            • Partager sur Facebook
            • Partager sur Twitter
              15 août 2019 à 11:03:54

              Après de multiples essais, il apparaît que Pygame peut jouer certains fichiers mp3 et pas d'autres, cf. aussi Pygame fails to play some mp3 files but not others.

              Voici un code (testé sous Linux, Python 3.6, Pygame 1.9.4 et Windows 10, python 3.7, Pygame 1.9.6) qui joue un fichier mp3 valide pour Pygame (placer le fichier à côté du fichier source Python) :

              import pygame
              
              pygame.init()
              
              pygame.mixer.music.load("m.mp3")
              pygame.mixer.music.play()
              
              while pygame.mixer.music.get_busy():
                  pass
              pygame.quit()

              Pour certains fichiers mp3 (non reconnus par l'encodage de pygame), ce code ne donne rien a entendre et s'arrête.

              Si tu as toujours des difficultés, je te conseille de convertir ton fichier audio en wav ou en ogg, le format est complètement reconnu par Pygame, ce qui n'est pas le cas de mp3 . Pour info, j'ai essayé la reconversion mp3  indiqué ICI d'un fichier non reconnu par le mixer de Pygame mais cela n'a rien changé au comportement initial.

              Au passage, ce code doit poser des problèmes dans une interface graphique car j'imagine que la boucle while est bloquante (à moins de la placer dans un thread).

              EDIT

              Si tu veux faire faire tourner un mp3 sous Tkinter voici un code basé sur ma démo avec un fichier wav :

              from tkinter import *
              import pygame
              
              pygame.mixer.init()
              
              pygame.mixer.music.load("clap.mp3") 
              
              def lancer():
                  pygame.mixer.music.play(-1)
              
              def couper():
                  pygame.mixer.music.stop()
              
              fen = Tk()
              
              Button(fen,text="Son",command=lancer, width=40).pack(pady=20)
              Button(fen,text="Couper",command=couper, width=40).pack(pady=20)
              
              fen.mainloop()
              

              Le lien vers le fichier clap.mp3

              Tu obtiendras qqchose comme ceci :

              -
              Edité par PascalOrtiz 15 août 2019 à 15:34:15

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                15 août 2019 à 14:31:04

                Pour faire au plus simple pour toi:

                Met le morceau .mp3 dans le même dossier que celui de ton script .py.

                Comme tu inclut pygame, pense à l'importé de cette manière dès le début 

                import pygame
                from pygame.locals import *

                Puis tu ajoute le mixer de pygame

                pygame.mixer.music.load("musique.mp3") #importe le fichier
                pygame.mixer.music.set_volume(0.25) #défini le volume 0.25
                volume=pygame.mixer.music.get_volume()#variable du volume
                print("Le volume est de",volume,"sur 1")
                pygame.mixer.music.play(-1) #joue la musique 



                • Partager sur Facebook
                • Partager sur Twitter
                  15 août 2019 à 14:43:02

                  J'ai déjà répondu à cette question ici : https://openclassrooms.com/forum/sujet/probleme-avec-le-path#message-93335962

                  L'OP n'a pas le même pseudo mais le même chemin d'accès... Quelle est la probabilité pour que deux auteurs s'appellent Céline et nomment leur projet Elektronomia ? o_O

                  PS : Si passer à une version plus récente de Python n'est pas possible, la solution la plus simple est de ne pas avoir de caractères accentués dans ton chemin d'accès...

                  -
                  Edité par Dan737 15 août 2019 à 14:44:23

                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 août 2019 à 15:29:59

                    TexAgère a écrit:

                    pygame.mixer.music.load("musique.mp3") #importe le fichier
                    pygame.mixer.music.set_volume(0.25) #défini le volume 0.25
                    volume=pygame.mixer.music.get_volume()#variable du volume
                    print("Le volume est de",volume,"sur 1")
                    pygame.mixer.music.play(-1) #joue la musique 



                    Je viens d'essayer ton code (en utilisant le fichier clap.mp3 en lien dans mon message ci-dessus):

                    import pygame
                    from pygame.locals import *
                    pygame.mixer.music.load("clap.mp3")
                    pygame.mixer.music.set_volume(0.25)
                    volume=pygame.mixer.music.get_volume()
                    pygame.mixer.music.play(-1)

                    et j'obtiens

                        pygame.mixer.music.load("clap.mp3")
                    pygame.error: mixer system not initialized



                    Même en initialisant:

                    import pygame
                    from pygame.locals import *
                    pygame.mixer.init()
                    pygame.mixer.music.load("clap.mp3")
                    pygame.mixer.music.set_volume(0.25)
                    volume=pygame.mixer.music.get_volume()
                    pygame.mixer.music.play(-1)


                    çe ne semble pas marcher (l'exécutable rend la main sans jouer l'audio).

                    Dan737 a écrit:

                    J'ai déjà répondu à cette question ici : https://openclassrooms.com/forum/sujet/probleme-avec-le-path#message-93335962

                    C'est ce que j'ai cru dans un premier temps. Mais j'ai testé son code (Linux et Windows) en faisant attention au problème de lecture de chemin, et on obtient le message d'erreur indiqué par Céline :

                    $ ls clap.*
                    clap.mp3  clap.wav
                    $ python3 oc_celine.py 
                    pygame 1.9.4
                    Hello from the pygame community. https://www.pygame.org/contribute.html
                    Traceback (most recent call last):
                      File "oc_celine.py", line 6, in <module>
                        pygame.mixer.Sound("clap.mp3").play()
                    pygame.error: Unable to open file 'clap.mp3'
                    $ 

                    Il ne me semble pas que Sound fonctionne pour du mp3 (pour wav, ça fonctionne). D'ailleurs, dans les tests du code source de Pygame, le seul exemple où un fichier mp3 est chargé n'est pas avec Sound mais avec pygame.mixer.music.load.



                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 août 2019 à 16:19:57

                      @PascalOrtiz Bravo pour avoir poussé l'investigation aussi loin !

                      Il est en effet décrit dans la documentation de pygame

                      The Sound can be loaded from an OGG audio file or from an uncompressed WAV.

                      EDIT:

                      @PascalOrtiz: J'ai oublié d'ajouter que ton dernier script fonctionne bien. Mais en l'état, il rend la main de suite puisque tu atteints la fin du programme après la dernière ligne. Si tu fais un time.sleep(), tu entendras le son jouer.

                      Pour quelque chose de plus propre

                      import pygame
                      from pygame.locals import *
                      
                      pygame.init()
                      pygame.mixer.music.load("clap.mp3")
                      pygame.mixer.music.set_volume(0.25)
                      volume=pygame.mixer.music.get_volume()
                      pygame.mixer.music.play()
                      
                      MUSIC_STOP = pygame.USEREVENT + 1
                      pygame.mixer.music.set_endevent(MUSIC_STOP)
                      
                      running = True
                      while running:
                          for event in pygame.event.get():
                              if event.type == MUSIC_STOP:
                                  running = False
                          pygame.time.wait(50)  # Laisser respirer le CPU



                      -
                      Edité par Dan737 15 août 2019 à 16:51:09

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Pygame .mp3

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown