How can I play more than one song at a time in PyG

2020-02-28 18:58发布

I've got it working now but with the time delay is there a better way because I want two different scripts to be working I want to have these playing in this order and have my images come up in order and the images are a long script and have time delays on them too.

#!/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()

标签: python pygame
2条回答
Animai°情兽
2楼-- · 2020-02-28 19:35

The following script will load 4 sounds (sound_0.wav to sound_3.wav) and play them.

sounds = []
for i in range(4):
    sound = pygame.mixer.Sound('sound_%d.wav'%i)
    sound.play()
    sounds.append(sound)
查看更多
Evening l夕情丶
3楼-- · 2020-02-28 19:56

Did you check the pygame.Mixer module ? On default, you can play 8 songs simultaneously

If you use the pygame.mixer.music, you'll be able to play only one song at the time.

If you use the pygame.mixer.sound, you'll be able to play up to 8 songs at the time.

The music module is here to stream music (it doesn't load all the music file at once).

The sound module is here to play differents sounds during game (sounds are completely loaded in memory).

So, in your example if you want to play the 4 songs at the same time :

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()
查看更多
登录 后发表回答