0

我正在尝试编写一小段代码来在游戏背景中播放音乐文件。我遇到的问题是,尽管所有代码都已正确布局和措辞,但不会播放任何声音文件。我在代码中放置了几个打印语句,它似乎表明声音文件要么没有加载,要么在加载后根本不播放?

import pygame
def musicPlayer():
    print "Playing music now"
    pygame.init()
    pygame.mixer.music.load('01ANightOfDizzySpells.mp3')
    print "load song1"
    pygame.mixer.music.play(loops=0, start=0.0)
    print "play song1"
    pygame.mixer.music.queue('01HHavok-intro.mp3')
    pygame.mixer.music.queue('02HHavok-main.mp3')
    pygame.mixer.music.queue('02Underclockedunderunderclockedmix.mp3')
    pygame.mixer.music.queue('03ChibiNinja.mp3')
    pygame.mixer.music.queue('04AllofUs.mp3')
    pygame.mixer.music.queue('05ComeandFindMe.mp3')
    pygame.mixer.music.queue('06Searching.mp3')
    pygame.mixer.music.queue('07WeretheResistors.mp3')
    pygame.mixer.music.queue('08Ascending.mp3')
    pygame.mixer.music.queue('09ComeandFindMe-Bmix.mp3')
    pygame.mixer.music.queue('10Arpanauts.mp3')
    pygame.mixer.music.queue('DigitalNative.mp3')
    pygame.mixer.music.set_endevent()
    #musicPlayer()
musicPlayer()

我错过了一些基本的东西吗?或者它可能与我的计算机而不是代码有关?

编辑:这是运行代码的输出

 Playing music now
 load song1
 play song1

如您所见,它不会引发任何错误。

4

2 回答 2

2

我用中间文件尝试了你的代码,它工作正常,但有一些调整:

import pygame

def musicPlayer():
    pygame.init()
    pygame.mixer.music.load('test.mid')
    print "load song1"
    pygame.mixer.music.play()
    print "play song1"
    pygame.mixer.music.queue('test_2.mid')

musicPlayer()
while pygame.mixer.music.get_busy():
    pygame.time.Clock().tick(10)
print "DONE"

如果脚本结束播放将不会发生,因为你需要 get_busy() 在 while 循环中。

pygame.music的文档中它指出:请注意 MP3 支持是有限的 [...] 考虑改用 OGG。


我玩了一点声音类。

这是我想出的:

import pygame

def musicPlayer():
    pygame.mixer.init()
    channel = pygame.mixer.Channel(1)
    sound = pygame.mixer.Sound('test.ogg')
    channel.play(sound)

musicPlayer()
while pygame.mixer.get_busy():
    pygame.time.Clock().tick(10)
print "DONE"
于 2014-12-07T23:11:58.133 回答
0

我对 pygame 及其方法不是很熟悉,但我的猜测是它要么无法正确找到文件,要么无法正确处理找到的文件。

我建议放置音频文件的完整路径,看看是否有帮助。这将排除它无法正确找到文件的问题(尽管从长远来看,硬编码显然不是一个好主意,因为您对程序的组织结构所做的任何更改都可能会破坏这些路径)。

根据他们的文档,他们的 MP3 支持是有限的。您可以尝试改用 .ogg 文件(http://www.pygame.org/docs/ref/music.html),因为这可能只是编码不完全支持的问题。

于 2014-12-07T23:02:05.010 回答