Как одновременно воспроизвести музыку и печатать текст?

Подскажите пожалуйста как осуществить следующую идею: Вывожу на экран текст с эффектом печатной машинки(В переменной introduction лежит многострочная строка):

for introduction in introduction:
    time.sleep(0.05)
    print(introduction, end = "", flush=True)

Так же написал код для запуска нужного мне файла .mp3 (использую Pyglet):

import pyglet

WelcomeSong = pyglet.media.load('music/welcome.mp3')
WelcomeSong.play()
pyglet.app.run()

Как два этих кода запустить одновременно? Т.е. мне нужно чтобы на экране печатался текст из переменной introduction и в это же время было музыкальное сопровождение из файла .mp3

Спасибо!


Ответы (1 шт):

Автор решения: ddgryaz

Разобрался с этим вопросом сам, с помощью библиотеки для работы с потоками threading. Вот что получилось:

import time
import threading
from config import introduction
import pyglet
def WelcomePrintMashin():
    for introductions in introduction:
        time.sleep(0.05)
        print(introductions, end="", flush=True)
def WelcomMusic():
    WelcomeSong = pyglet.media.load('music/welcome.mp3')
    WelcomeSong.play()
    pyglet.app.run()

def play1():
    while time.time() <= start_time:
        pass
    threading.Thread(target=WelcomMusic()).start()
def play2():
    while time.time() <= start_time:
        pass
    threading.Thread(target=WelcomePrintMashin()).start()
start_time=time.time()+1
welcommusicrun = threading.Thread(target=play1).start()
welcomprintmashinrun = threading.Thread(target=play2).start()
welcommusicrun
welcomprintmashinrun

По итогу поставленная задача была решена, код запускается и две нужных функции работают одновременно. Всем спасибо!

→ Ссылка