如何在PyGame中一次播放多首歌曲?

时间:2011-05-14 21:25:49

标签: python pygame

我现在已经开始工作,但是时间延迟有更好的方法,因为我想要两个不同的脚本工作我希望按顺序播放这些并且我的图像按顺序出现并且图像是一个很长的剧本,也有时间延迟。

#!/usr/bin/env python
import pygame
pygame.mixer.init()
pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.init()
print "hey I finaly got this working!"
sounda= pygame.mixer.Sound('D:/Users/John/Music/Music/FUN.OGG')
soundb= pygame.mixer.Sound('D:/Users/John/Music/Music/Still Alive.OGG')
soundc= pygame.mixer.Sound('D:/Users/John/Music/Music/turret.OGG')
soundd= pygame.mixer.Sound('D:/Users/John/Music/Music/portalend.OGG')
sounda.play()
pygame.time.delay(11000)
soundb.play()<P>
pygame.time.delay(180000)
soundc.play()
pygame.time.delay(90000)
soundd.play()

2 个答案:

答案 0 :(得分:7)

您检查了pygame.Mixer模块吗?默认情况下,您可以同时播放8首歌曲

如果你使用pygame.mixer.music,那么你当时只能播放一首歌。

如果你使用pygame.mixer.sound,那么你当时最多可以播放8首歌曲。

music module用于播放音乐(它不会立即加载所有音乐文件)。

sound module在这里播放不同的声音(声音在内存中完全加载)。

因此,在您的示例中,如果您想同时播放4首歌曲:

import pygame
pygame.mixer.init()
pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.init()
print "hey I finaly got this working!"
sounds = []
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/FUN.OGG'))
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/Still Alive.OGG'))
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/turret.OGG'))
sounds.append(pygame.mixer.Sound('D:/Users/John/Music/Music/portalend.OGG'))
for sound in sounds:
    sound.play()

答案 1 :(得分:0)

以下脚本将加载4个声音(sound_0.wav到sound_3.wav)并播放它们。

sounds = []
for i in range(4):
    sound = pygame.mixer.Sound('sound_%d.wav'%i)
    sound.play()
    sounds.append(sound)