Python:在后台播放音乐?

时间:2013-07-29 17:06:45

标签: python pygame playback

我目前正在使用Python制作游戏。我没有使用PyGame,只是控制台(非GUI) 当您开始游戏时,您将获得游戏的徽标,以及有关您刚开始的“旅程”的大量信息。有很多文字,所以当文字滚动时,我想要在后台播放一首歌。

我使用以下代码启动音乐:

def new_game():
    import winsound
    winsound.PlaySound("intro.wav", winsound.SND_ALIAS)
    LVL1_INTRO()

唯一的问题是:在音乐停止播放之前,它不会继续LVL1_INTRO()。这是一个问题,因为音乐大约需要1-2分钟。

有什么方法可以解决这个问题吗?音乐开始后,它将继续LVL1_INTRO()

如果有可能的话,如果有一个停止音乐的代码,我会很高兴,所以我不需要开始剪切音乐,并使其与前奏完全相同。

非常感谢!

2 个答案:

答案 0 :(得分:3)

根据documentation,您使用SND_ASYNC标志。

winsound.SND_ASYNC 
Return immediately, allowing sounds to play asynchronously.

要停止播放,请使用PlaySound参数调用NONE

winsound.PlaySound(None, winsound.SND_ASYNC)

答案 1 :(得分:1)

我没有这个模块的经验,但看起来好像你可以异步播放声音。请参阅http://docs.python.org/2/library/winsound.html并查看SND_ASYNC。