Выводится сообщение "Процесс завершен с кодом выхода 0", но ничего не воспроизводится. Как я могу решить эту проблему?
Переведено автоматически
Ответ 1
Функция воспроизведения запускает воспроизведение музыки, но немедленно возвращается. Затем ваша программа завершает работу, и объект pygame автоматически уничтожается, что приводит к остановке музыки.
Как вы прокомментировали, он воспроизводит музыку, если вы дождетесь ее перед выходом - потому что тогда объект pygame не уничтожается до завершения цикла while.
while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10)
Ответ 2
Музыка останавливается, потому что это асинхронное событие, что означает, что оно будет продолжаться в соответствии со сценарием. затем скрипт мгновенно останавливается, не давая музыке возможности начаться. как указывалось ранее, вы могли бы использовать
while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10)
однако, это еще лучше pygame.event.wait(), поскольку он будет ждать завершения всех асинхронных событий.