Je veins de commencer ave Pygame (je l'ai installé hier). Mais dès que je lance un programme (copié sur internet c'était juste pour être sur de l'avoir bien téléchargé), j'ai une fenêtre qui s'ouvre intitulée "Pygame window". cette page ne répond pas : je dois la quitté de force à chaque fois.
ce que j'essaye de faire est de faire tourner un fichier audio mais pour ça il faudrait que j'arrive à utiliser Pygame de ce que j'ai compris.
j'ai vu qu'il existe un autre forum daté de 2010 ou ce qui est conseillé est d'utiliser pygame.quit() à la fin. c'est ce que j'ai fait mais ca ne marche pas
je suis sur spyder qui m'affiche plusieurs triangles jaunes "warning":
- 1 à la deuxième ligne
- plusieurs par le suite quand je fait appel aux touches du clavier
je met le code ci-dessous:
import pygame
from pygame.locals import *
pygame.init()
fenetre = pygame.display.set_mode((300,300))
generique = pygame.mixer.Sound("(1) Générique.wav")
#latence = pygame.mixer.Sound("(2) Bravo vous avez gagné.wav")
#question = pygame.mixer.Sound("(3) Question.wav")
#reflexion = pygame.mixer.Sound("(4) Reflexion.wav")
#vrai = pygame.mixer.Sound("(5) Gagné.wav")
#faux = pygame.mixer.Sound("Faux.wav")
#telephone = pygame.mixer.Sound("Telephone.wav")
#fin = pygame.mixer.Sound("Fin.wav")
continuer = 1
joue = 0
while continuer:
for event in pygame.event.get():
#Quitter
if event.type == QUIT:
continuer = 0
#Lancer le son
if event.type == KEYDOWN and event.key == K_SPACE and joue == 0:
generique.play()
joue = 1
#Sortir de pause
if event.type == KEYDOWN and event.key == K_SPACE and joue == 1:
pygame.mixer.unpause()
#Mettre en pause
if event.type == KEYUP and event.key == K_SPACE:
pygame.mixer.pause()
#Stopper
if event.type == KEYDOWN and event.key == K_RETURN:
generique.stop()
joue = 0
pygame.quit()
merci d'avance pour vos réponses
David
- Edité par DavidBenichou2 19 juin 2020 à 12:58:06
Bonjour. De mon côté tout fonctionne. Je n'ai pas le fichier .wav évidemment mais la fenêtre s'affiche bien, et répond parfaitement. Si tu met des print dans chaque conditions, tu t'apercevra que le mixer change d'état très vite et très fréquemment à chaque appui de touche.
Bonjour. De mon côté tout fonctionne. Je n'ai pas le fichier .wav évidemment mais la fenêtre s'affiche bien, et répond parfaitement. Si tu met des print dans chaque conditions, tu t'apercevra que le mixer change d'état très vite et très fréquemment à chaque appui de touche.
"change d'état" c'est-à-dire?
à vrai dire je ne m'aperçois de rien car le programme refuse de tourner. il m'ouvre une fenêtre intitulée "Pygame window" et celle-ci fait planter l'ordi
je crois que mon problème est sur l'installation même de pygame
je n'ai jamais utilisé ce module depuis que je l'ai téléchargé
voici la fenêtre qui s'ouvre quand je lance :
je précise que je ne connais pas ce logo d'application: c'est la première fois que je le vois
je code sur spider que l'on voit trois applications sur la gauche
l'icône c'est normale. Cette page ne répond pas est une erreur rencontrée sous windows et mac lorsqu'il n'y a pas de boucle événementielle, mais ce n'est pas le cas ici.
d'après le site:
Some platforms require the pygame.mixerpygame module for loading and playing sounds module to be initialized after the display modules have initialized. The top level pygame.init() takes care of this automatically, but cannot pass any arguments to the mixer init. To solve this, mixer has a function pygame.mixer.pre_init() to set the proper defaults before the toplevel init is used.
essaye un pygame.mixer.pre_init() avant le pygame.init() dans un premier temps, si ça ne marche toujours pas, ajoute pygame.mixer.init() après pygame.init().
Essaye de mettre un pygame.event.pump() juste avant la boucle for. Peut-être que ça va réveiller le système, c'est comme si ton OS ne captait pas la boucle evenementielle.
j'ai essayé sur un autre ordinateur mais celui-ci n'arrivait même pas à détecter le module Pygame que je venais d'installer. je n'ai donc pas pu voir si ce que j'ai fait fonctionnait.
je suis pourtant certain que Pygame y a été installé car j'ai lancé un exemple qui fonctionnait parfaitement
au final je n'ai encore jamais réussi à entendre quelque chose grace à python sur aucun ordinateur
j'ai aussi installé kite entre temps. je ne sais pas si ca peux servir dans mon cas mais j'en avais besoin pour un autre code. Peut être que ça va aider...
#Lancer le son
if event.type == KEYDOWN and event.key == K_SPACE and joue == 0:
#generique.play()
print("1")
joue = 1
#Sortir de pause
if event.type == KEYDOWN and event.key == K_SPACE and joue == 1:
print("2")
#pygame.mixer.unpause()
#Mettre en pause
if event.type == KEYUP and event.key == K_SPACE:
print("3")
#pygame.mixer.pause()
#Stopper
if event.type == KEYDOWN and event.key == K_RETURN:
print("4")
#generique.stop()
joue = 0
Résultat, avec seulement un appui sur la barre espace:
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
1
2
3
C'est ce que j'expliquais, le mixer reviens trop vite dans l'état 'pause'.
tel quel le code joue la musique que si la barre espace reste enfoncée. Car dès que tu relâches, tu passes en pause. Hormis ceci, je ne vois pas d'erreur, si alien fonctionne ça devrait fonctionner aussi.
voila tout le problème, je crois que c'est le module Pygame qui est mal appelé sur spyder. en tout cas je suis certain qu'il est bien installé sur mon ordinateur.
Est-tu sûr que ce n'est pas en relation avec le volume ? Peut-être que pour je ne sais quelle raison il est à 0 ou très bas. J'imagine que tu as déjà lu le .wav pour t'assurer qu'il contient bel et bien de la musique.
bonjour, excusez moi pour ce temps de réponse un peu long.
j'avoue que je ne suis sure de rien. j'ai essayé ce que vous avez préconisé mais mon retour n'est pas le même (je n'ai pas le 1,2,3 quand je change de programme comme vous):
dans cette fenêtre, je vois que le programme tourne à l'infini et quand je le force à quitter, il tente de se reconnecter au kernel mais il arrive en moyenne une fois sur deux qu'il n'y arrive pas donc je dois fermer et relancer spyder
en effet j'ai vérifié que le .wav contient bien de la musique et celle ci tourne très bien avec l'application "aperçu" d'apple mais toujours rien avec pygame
Bonjour, le problème est que sur mac, si rien n'est affiché à l'écran, alors la fenêtre ne répond pas. Affiche juste une image avec le code si dessous et ça marchera.
× 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.
typage structurel ftw
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
typage structurel ftw
Python c'est bon, mangez-en.
typage structurel ftw