Почему pygame.event.wait останавливает воспроизведение музыки c через 20 секунд или около того - PullRequest
2 голосов
/ 23 апреля 2020

Итак ... я использую этот код:

import pygame
pygame.mixer.init()
pygame.init()
pygame.mixer.music.load('computersong.mp3')
pygame.mixer.music.play()
pygame.event.wait()

но музыка c играет около двадцати секунд, затем останавливается, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

pygame.event.wait() возвращает одно событие из очереди событий, но не ожидает окончания воспроизведения музыки c.
Вы должны использовать pygame.time.wait и ждать указанное c количество времени:

pygame.time.wait(5000) # wait 5 seconds

Другой вариант - использовать pygame.mixer.music.get_busy() и ждать в oop до тех пор, пока Муси c закончил:

pygame.mixer.music.play()

clock = pygame.time.Clock()
while pygame.mixer.music.get_busy():
    pygame.event.poll()
    clock.tick(10)
1 голос
/ 24 апреля 2020

Из того, что вы написали, не ясно, но я предполагаю, что ваш computerong.mp3 составляет 20 секунд, и он воспроизводится до конца и останавливается. Предполагая, что это так, и вы хотите, чтобы это повторилось, вы можете попробовать это:

Из документации по пигмеям здесь , вы можете увидеть, что если вы хотите, чтобы песня повторялась, вы можете дать это значение для аргумента l oop. Если вы хотите, чтобы цикл продолжался до тех пор, пока вы его не остановите, вы передаете play loop = -1

pygame.mixer.musi c .play ()

Запустить воспроизведение потока воспроизведения музыки c (петли = 0, начало = 0,0) -> Нет. Воспроизведение загруженного потока музыки c. Если музыка c уже воспроизводится, она будет перезапущена.

Аргумент loops определяет количество повторов, которые будет воспроизводить музыка c. play (5) приведет к тому, что musi c будет воспроизведен один раз, а затем повторен пять раз, всего шесть. Если цикл равен -1, то musi c будет повторяться бесконечно.

Затем ваш код должен go включить, чтобы сделать что-то еще. Если программа просто делает это и затем выходит, она, конечно, остановится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...