Всякий раз, когда я использую «PlaySound» для воспроизведения звука в фоновом режиме, остальная часть моей игры не загружается - PullRequest
0 голосов
/ 05 января 2019

Поэтому я решил реализовать playsound (), чтобы добавить фоновый звук в мою программу. Однако, когда я запускаю программу с playsound, настоящая игра не загружается, пока песня не закончена.

from playsound import playsound
#type 'pip install playsound' in command prompt to install library
import random

playsound('audio.mp3')

while True:
    min = 1
    max = 6
    roll_again = "yes"
    while roll_again == "yes" or roll_again == "y":
        print("Rolling the dices...")
        print("The values are....")
        print(random.randint(min, max))
        print(random.randint(min, max))
        roll_again = raw_input("Roll the dices again?")

Обычно я ожидаю, что звук будет воспроизводиться в фоновом режиме, пока игра в кости загружается и в нее играют, однако это не так раздражает.

1 Ответ

0 голосов
/ 05 января 2019

Из документации на модуль playsound :

Существует необязательный второй аргумент, block, который по умолчанию установлен на True. При установке значения False функция запускается асинхронно.

Таким образом, если вы хотите, чтобы он запускался один раз в фоновом режиме, вам необходимо использовать:

playsound('audio.mp3', block=False)

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

import threading
from playsound import playsound

def loopSound():
    while True:
        playsound('audio.mp3', block=True)

# providing a name for the thread improves usefulness of error messages.
loopThread = threading.Thread(target=loopSound, name='backgroundMusicThread')
loopThread.daemon = True # shut down music thread when the rest of the program exits
loopThread.start()

while True:
    raw_input("Put your gameplay loop here.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...