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 ?
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 :
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
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 ?
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...
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
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.
@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
× 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.
Découverte Python Doc Tkinter Les chaînes de caractères
Découverte Python Doc Tkinter Les chaînes de caractères