如何使用 Python 中的 playsound 模块同时播放两种声音?

Posted

技术标签:

【中文标题】如何使用 Python 中的 playsound 模块同时播放两种声音?【英文标题】:How could I play two sounds at the same time using the playsound module in Python? 【发布时间】:2020-01-18 16:30:40 【问题描述】:

代码如下:

from playsound import playsound
import keyboard
key_to_sound = 
    '1': 'a.wav',
    '2': 'b.wav',
    '3': 'c.wav',
    '4': 'd.wav',
    '5': 'e.wav',
    '6': 'f.wav',
    '7': 'g.wav'

while True:
    key = keyboard.read_key()
    if key == 'num_1':
        break # breaks if num1 pressed
    elif key in key_to_sound:
        playsound(key_to_sound[key])

“@timgeb”帮助我编写了这段代码,顺便说一句。有什么办法可以让这个模块一次播放多个声音,还是我必须使用更复杂的模块?

【问题讨论】:

这能回答你的问题吗? How do play audio (playsound) in background of Python script? 不要添加问题的答案。如果您想发布自己问题的答案,可以单独发布答案。但是我认为它已经有一个正是你所拥有的答案,所以真的没有必要。除此之外,您对答案的解释毫无意义。我看不出有什么区别。 谁是“timgeb”?它指的是什么?其他一些堆栈溢出问题? This Stack Overflow question? 【参考方案1】:

来自documentation:

还有一个可选的第二个参数,block,默认设置为 True。将其设置为 False 会使函数异步运行。

这意味着它会在声音继续播放时立即返回,所以播放两个声音:

playsound( sound1, False ) ;
playsound( sound2, False ) ;

第二个playsound 可能同样被阻塞:

playsound( sound1, False ) ;
playsound( sound2, True ) ;

【讨论】:

@Supremayro420 您是否点击了链接或阅读了他们的答案?就在那儿。 @Supremayro420 :我想我刚才已经解释过了。 @Supremayro420 有用吗?我不是 Python 程序员,也从未尝试过。我刚刚阅读了文档! @Clifford 是的,只是尝试在运行所有 playsound 的最新行添加一个错误语句,我通常必须执行 playsound('oof.wav', False)

以上是关于如何使用 Python 中的 playsound 模块同时播放两种声音?的主要内容,如果未能解决你的问题,请参考以下文章

python winsound.playsound 找不到我的声音文件

如何异步使用playsound?

C++ 中的 Playsound:.wav 文件的文件错误

解决Python使用playsound播放音频报错:在用引号括起的字符串不能指定额外的字符

C++ 中的 Playsound() 播放 windows 错误声音,我已经包含了 winmm.lib

如何使用 (IBAction)playsound:(id)sender 播放声音 [关闭]