【问题标题】:How can I play more than one song at a time in PyGame?如何在 PyGame 中一次播放多首歌曲?
【发布时间】:2018-11-26 17:42:33
【问题描述】:

我现在已经开始工作了,但是由于时间延迟,有没有更好的方法,因为我希望两个不同的脚本工作一个很长的脚本,而且它们也有时间延迟。

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


    【解决方案1】:

    您检查了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()
    

    【讨论】:

    • 是的,但我是如何使用频道的?我试过了,但如何为频道分配歌曲?
    【解决方案2】:

    以下脚本将加载 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      相关资源
      最近更新 更多