Programme avec Pygame

Melodie23 -  
quent217 Messages postés 424 Statut Membre -
Bonjour,

Je fais un stage en sciences cognitives et je suis un peut perdue car je dois coder mon expériences et je n’arrive pas à faire quelque chose ! J’ai une liste de sons ( des mots dit à l’orale) et j’ai fait une boucle pour que les participants entendent les sons un après l’autre avec un random.randint pour que ce soit aléatoire mais malheureusement mes sons ce superpose et je n’arrive pas à les faire ce suivre l’un après l’autre avec quelques seconde d’écart (3s)...comment faire ?

5 réponses

  1. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
     
    Bonjour,

    Puisque tu as commencé à écrire du code et pour que quelqu'un puisse te conseiller, il serait bon que tu postes ce code ci-dessous en lui affectant le format ad hoc avec la balise
    <>
    .
    0
  2. Melodie23
     
    <import pygame>
    <import mixer>
    <import pygame.mixer>
    <import random>
    <import np>
    
    <pygame.mixer.init()>
    
    <amitie=pygame.mixer.Sound("C:/Users/melod/Documents/FAC/Master 1 Sciences Cognitives/Stage/AUDIO/TRACKS/amitié.wav")>
    
    <amour=pygame.mixer.Sound("C:/Users/melod/Documents/FAC/Master 1 Sciences Cognitives/Stage/AUDIO/TRACKS/amour.wav")>
    
    <balle=pygame.mixer.Sound("C:/Users/melod/Documents/FAC/Master 1 Sciences Cognitives/Stage/AUDIO/TRACKS/balle.wav")>
    
    <L=[amitie, amour,balle]>
    
    <while len(L)!=0:>
     <i=random.randint(0,len(L)-1)>
     <sound=L[i]>
     <L[i]=L[len(L)-1]> 
     <sound.play(0,0)>
     <L.pop(len(L)-1)>



    Voici ce que j'ai déjà effectuer en terme de codage ! :)
    Merci pour le conseil même si j'ai pas réussie a le faire bien s'affiché
    0
    1. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
       
      Quand tu édites ton code, il y a en haut de la fenêtre d'édition la balise que je t'ai indiquée ;-)

      Je modifie ton message...

      PS : pour l'emploi de la balise, d'abord tu tapes le code, tu le sélectionnes puis tu utilises la balise.
      0
  3. Dragonflame777 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   2
     
    Bonjour

    essaye de suivre une certaine logique dans ton code
    enfin c est juste un conseil .
    si tu déclare que tu as 100 point de vie et que tu perde 1 point de vie
    il te reste donc 99 point de vie
    simple suite logique
    0
  4. Melodie23
     
    Je comprend bien, j'ai enlevé petit a petit les sons de la liste pour éviter qu'il soit par la suite ouvert encore une fois . Ce qui m'empêche d'avancer c'est que tous mes morceaux ce lancent en même temps ou plutôt la boucle continue son chemin bien avant que le son ouvert soit terminé ce qui induit que tout ce superpose.

    J'aimerais trouver une ligne de code me permettant de demander a la boucle de s'effectuer seulement a chaque fin de lecture d'audio pour éviter ce chevauchement.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. quent217 Messages postés 424 Statut Membre 348
     
    Bonjour,
    vous une fois que vous avez lancé le son, vous pouvez utiliser get_busy() sur le resultat pour savoir si le son est terminé. Exemple :
    import pygame.time
    
    son = sound.play(0,0)
    while son.get_busy():
        pygame.time.wait(100)
    0