我想在play_audio
函数运行时在user_text
输入框中键入一些内容
我尝试了以下代码:
from tkinter import *
from playsound import playsound
root = Tk()
def play_audio():
playsound('audio.mp3')
play_audio_button = Button(root, text='Play audio', command=play_audio)
user_text = Entry(root)
play_audio_button.pack()
user_text.pack(padx=10, pady=10)
mainloop()
但是当音频在后台播放时它不允许我做任何事情。它只允许我在音频完成后输入。
我也试着用tkinter做同样的事情,它奏效了:
def play_audio():
playsound('audio.mp3')
play_audio()
play_audio_input = input('Your text: n')
它允许我在后台播放音频时输入。
那么我怎样才能让它在kinter中工作呢?
playsound
可以在后台运行声音,如果你需要循环声音或不仅仅是运行一个声音文件,你应该使用线程。
def play_audio():
playsound('audio.mp3', block=False)
如果你想循环声音,你不需要多处理,线程模块非常适合在后台运行任务,这将在另一个线程中运行音频,留下主线程运行你的GUI。
import threading
def play_audio():
while True:
playsound('audio.mp3')
play_audio_button = Button(root, text='Play audio', command=lambda: threading.Thread(play_audio).start())