Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是什么阻止声音文件在此pygame混音器设置中播放?_Python_Python 2.7_Pygame_Mixer - Fatal编程技术网

Python 是什么阻止声音文件在此pygame混音器设置中播放?

Python 是什么阻止声音文件在此pygame混音器设置中播放?,python,python-2.7,pygame,mixer,Python,Python 2.7,Pygame,Mixer,我想写一点代码,在游戏的背景下播放音乐文件。我遇到的问题是,尽管所有的代码都经过了适当的布局和措辞,但没有声音文件会播放。我在代码中放了几个print语句,它似乎表明声音文件要么没有加载,要么加载后就没有播放 import pygame def musicPlayer(): print "Playing music now" pygame.init() pygame.mixer.music.load('01ANightOfDizzySpells.mp3') pri

我想写一点代码,在游戏的背景下播放音乐文件。我遇到的问题是,尽管所有的代码都经过了适当的布局和措辞,但没有声音文件会播放。我在代码中放了几个print语句,它似乎表明声音文件要么没有加载,要么加载后就没有播放

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

正如您所看到的,它不会抛出错误

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

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


根据他们的文档,他们的MP3支持是有限的。您可以尝试改用.ogg文件(),因为这可能是编码不完全受支持的问题。

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

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"
如果剧本结束了,剧本就不会上演了,为此,你需要在一个while循环中获得_busy()

在文献中指出:<强>注意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"

也许是档案。你试过另一个文件吗?是的我试过了。输出相同。我正确地假设所说的代码是正确的,谢谢!我试过你的编辑,效果很好。从我得到的输出来看,代码似乎运行良好。但是仍然没有声音作为输出!仍然拒绝使用mp3,但ogg转换确实起到了一定的作用。代码运行但没有声音。然而,我可以通过输出判断出有什么东西在工作,它可能是ogg吗?我不知道,只有通过文件我可以测试自己。我尝试了几个mp3文件,只有几个工作,ogg文件也有一些问题,我不知道如何修复。midi文件似乎总是有效的。你试过混音器吗?声音类?这将被应用到一个更大的游戏中,并被用作背景音乐。sound类将用于声音效果。我尝试改为ogg,但没有什么不同。然而,罗德里格斯给了我一些帮助。mp3肯定是个问题。