2

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

我用以下代码开始音乐:

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

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

有没有什么办法解决这一问题?音乐开始后,它将继续使用 LVL1_INTRO()

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

非常感谢!

4

2 回答 2

3

根据您使用 SND_ASYNC 标志的文档。

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

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

winsound.PlaySound(None, winsound.SND_ASYNC)
于 2013-07-29T17:24:53.097 回答
1

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

于 2013-07-29T17:17:31.240 回答