Зачем Pygame нужно время.спить, чтобы воспроизвести звук перед выходом? - PullRequest
0 голосов
/ 09 февраля 2019

Я просто играю с Python, проигрывая MP3-файлы, и наткнулся на pygame

Я получил его для воспроизведения музыки, но каким-то образом мне нужно добавить time.sleep(SECONDS) для воспроизведения музыки или ещеон просто будет существовать сразу после запуска в терминале

Есть ли причина для этого, или я делаю это неправильно?

import pygame, time
from pygame.locals import *

pygame.mixer.pre_init(44100, 16, 2, 4096)
pygame.init()
pygame.mixer.music.load("path/to/mp3/file")
pygame.mixer.music.play()
time.sleep(32)

Я не пытаюсь создать игру иличто угодно, как я уже говорил, я просто играюсь с Python

1 Ответ

0 голосов
/ 09 февраля 2019

Говорить с «почему» - pygame.mixer.music на самом деле не задумано как процесс на переднем плане: идея в том, что это фоновая музыка, которую можно играть, пока что-то еще работает.Если пользователь говорит, что хочет выйти из игры, он, как правило, будет раздражен, если эта игра будет продолжаться до тех пор, пока не закончится текущая фоновая музыка.


Если вы хотите заблокировать, пока музыка не будетготово, один неэффективный, но простой способ сделать это с помощью цикла, который проверяет завершение:

while pygame.mixer.music.get_busy():
  time.sleep(0.1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...