打印到屏幕后如何播放声音?
How to play sound after printing to the screen?
我正在尝试编写一个程序,在显示摩尔斯电码的同时播放摩尔斯电码的声音。
我遇到的问题是在程序中显示摩尔斯电码之前先播放声音。该程序有一个 UI 基于 tkinter:
for item in self.morse_code:
self.output_text_area.config(state="normal")
self.output_text_area.insert(END, item)
self.output_text_area.config(state="disable")
play_sound(self.morse_code)
我正在使用 playsound 库,下面是负责播放声音的函数:
from playsound import playsound
def play_sound(morse_code: list):
print(morse_code)
for code in morse_code:
print(code)
for char in code:
if char == '-':
playsound('sound/morse_line.mp3')
elif char == '.':
playsound('sound/morse_dot.mp3')
elif char == '|':
continue
time.sleep(0.05)
time.sleep(1)
如何让程序先显示莫尔斯电码,然后再播放莫尔斯电码声音?目前,即使更新 text_area
的代码先执行,声音也会先播放,然后在完成后会显示摩尔斯电码。
这是因为 playsound 函数有一个“block”参数,它会阻止执行直到声音完成执行。默认情况下,此参数为“True”。
将其更改为“False”,您就可以开始了:
from playsound import playsound
def play_sound(morse_code: list):
print(morse_code)
for code in morse_code:
print(code)
for char in code:
if char == '-':
playsound('sound/morse_line.mp3', block=False)
elif char == '.':
playsound('sound/morse_dot.mp3', block=False)
elif char == '|':
continue
time.sleep(0.05)
time.sleep(1)
但是,您可能希望同时打印和播放声音,在这种情况下,只需遍历字符串中的每个字母,单独打印并播放声音,而不是一起打印在函数的开头。
来源:https://pypi.org/project/playsound/
上的 Playsound 文档
相关部分:playsound 模块只包含一件事 - 函数(也称为)playsound。
它需要一个参数 - 包含您要播放的声音的文件的路径。这可能是本地文件,或 URL.
还有一个可选的第二个参数 block,默认设置为 True。将其设置为 False 会使函数 运行 异步。
我正在尝试编写一个程序,在显示摩尔斯电码的同时播放摩尔斯电码的声音。
我遇到的问题是在程序中显示摩尔斯电码之前先播放声音。该程序有一个 UI 基于 tkinter:
for item in self.morse_code:
self.output_text_area.config(state="normal")
self.output_text_area.insert(END, item)
self.output_text_area.config(state="disable")
play_sound(self.morse_code)
我正在使用 playsound 库,下面是负责播放声音的函数:
from playsound import playsound
def play_sound(morse_code: list):
print(morse_code)
for code in morse_code:
print(code)
for char in code:
if char == '-':
playsound('sound/morse_line.mp3')
elif char == '.':
playsound('sound/morse_dot.mp3')
elif char == '|':
continue
time.sleep(0.05)
time.sleep(1)
如何让程序先显示莫尔斯电码,然后再播放莫尔斯电码声音?目前,即使更新 text_area
的代码先执行,声音也会先播放,然后在完成后会显示摩尔斯电码。
这是因为 playsound 函数有一个“block”参数,它会阻止执行直到声音完成执行。默认情况下,此参数为“True”。 将其更改为“False”,您就可以开始了:
from playsound import playsound
def play_sound(morse_code: list):
print(morse_code)
for code in morse_code:
print(code)
for char in code:
if char == '-':
playsound('sound/morse_line.mp3', block=False)
elif char == '.':
playsound('sound/morse_dot.mp3', block=False)
elif char == '|':
continue
time.sleep(0.05)
time.sleep(1)
但是,您可能希望同时打印和播放声音,在这种情况下,只需遍历字符串中的每个字母,单独打印并播放声音,而不是一起打印在函数的开头。
来源:https://pypi.org/project/playsound/
上的 Playsound 文档相关部分:playsound 模块只包含一件事 - 函数(也称为)playsound。
它需要一个参数 - 包含您要播放的声音的文件的路径。这可能是本地文件,或 URL.
还有一个可选的第二个参数 block,默认设置为 True。将其设置为 False 会使函数 运行 异步。