我希望我的脚本能够彼此并排运行两个活动循环

时间:2017-08-02 18:53:05

标签: python raspberry-pi python-multithreading

当我通过pygame按键时,我有a script播放音频文件。

我可以演奏鼓(踢,小军鼓,帽子),这很酷 - 现在我想更多地建立它。我想要实现两件事,这两件事要求我让 2个活动循环并排运行

场景1:

想象一下,我有一个钢琴即兴演奏的音频文件,只是一遍又一遍地循环。我希望能够按住一个键,(在my code中它是d键),音频文件将播放,直到a)我按下d键。或者b)音频文件到达它结束。 我已经实现了这一点,但我需要学习的部分是如何扫描更多按键后面的钢琴riff循环?在我的代码中,按下d键调用弹奏钢琴循环并等待d取消的功能。

场景2基本相同:

在我的代码中,按下e键会调用一个使用循环和time.sleep的功能来播放标准的鼓点。 如何'鼓环' 我可以扫描/播放更多按键/声音播放鼓直到e键未被按下?

感谢您提供任何指导。我认为我的解决方案要么是创建一个函数来扫描我在每次和所有按键之后调用的键(而不是使键扫描循环成为主循环)。 或者关于"多线程" - 我有兴趣了解它是否可以帮助我同时在python中执行多个任务。

1 个答案:

答案 0 :(得分:0)

如果你想要两个必须同时运行的循环我建议线程。线程预先安装了python 3,它看起来像这样。

from _thread import *

def loop2():
    while True:
        #your sound loop thing

start_new_thread(loop2,())

while True:
    #your other loop thing