使用多处理一次运行多个功能

时间:2015-10-24 03:42:36

标签: python python-2.7 audio

目前,我正在研究基于文本的RPG。这个想法是最终实现一个声音轨道,以及游戏的一般声音,以及一个gui。我已经想出如何使用pyaudio播放声音。现在,问题是我在播放音乐时无法运行任何其他功能。有没有解决的办法?我已阅读多处理的线程;然而,它们似乎并没有多大帮助。没有多处理代码,音频将占主导地位,Python将不会运行任何其他功能。使用代码,游戏将运行游戏,但没有音频。

#Module Imports
from rooms import user, create
import items
import enemies
import rooms
from music import AudioFile
from multiprocessing import Process
import sys

def game():
    global AudioFile
    User = user()
    c = create()
    a = AudioFile("rpg.wav")
    while User.is_alive() and User.win == 0:
        if __name__=='__main__':
            p1 = Process(target = a.play)
            p1.start()
            p2 = Process(target = c)
            p2.start()
            p1.join()
            p2.join()
game()

这不应该允许a.play()和类c()同时运行吗?

感谢您的反馈和解答!

1 个答案:

答案 0 :(得分:0)

请尝试以下代码,

while User.is_alive() and User.win == 0:
    if __name__=='__main__':
        procs = [Process(target = a.play), Process(target = c)]
        [p.start() for p in procs]
        [p.join() for p in procs]