Pygame:无法打开.mp3文件

时间:2016-01-08 03:21:58

标签: python audio pygame

所以...每当我尝试运行这段代码时:

import pygame, sys, time
from pygame.locals import *

pygame.init()

DISPLAYSURF = pygame.display.set_mode((400, 300))
pygame.display.set_caption('Memes.')

meme = pygame.mixer.Sound('JUST DO IT.mp3')
meme.play()
time.sleep(2)
meme.stop()

while True: # Main Loop
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

我收到此错误:

Traceback (most recent call last):
  File "C:\Users\Slay-Slay\Desktop\Python\Python Code\play soun.py", line 9, in <module>
    meme = pygame.mixer.Sound('JUST DO IT.mp3')
pygame.error: Unable to open file 'JUST DO IT.mp3'

在您提出要求之前,代码和声音都在同一个文件夹中。我不知道问题是什么......我认为pygame支持.mp3?

编辑:我刚用pygame.mixer.music.load()函数试了一下......但这也没用。它反而给了我这个错误:

Traceback (most recent call last):
  File "C:\Users\Slay-Slay\Desktop\Python\Python Code\play soun.py", line 9, in <module>
    pygame.mixer.music.load('JUST DO IT.mp3')
pygame.error: Couldn't read from 'JUST DO IT.mp3'

我也尝试过不同的格式,例如WAV或OGG。都没有奏效。我在2个不同的功能上尝试了所有3种格式。全部返回相同的错误。对于music.load,“无法读取”,而对于Sound,“无法打开文件”。

3 个答案:

答案 0 :(得分:2)

您应该使用的另一种混音方法music - music支持mp3,但sound不支持。试试这个。

pygame.mixer.music.load('JUST DO IT.mp3')
pygame.mixer.music.play()
time.sleep(2)
pygame.mixer.music.stop()

^顺便说一下,这是一个非常沉闷的模因

答案 1 :(得分:0)

因此pygame只允许使用Sound播放OGG或压缩WAV文件的文件。但是,您可以使用音乐而不是声音播放mp3文件。另外,下次你可以在这里查看PyGame文档的信息。 https://www.pygame.org/docs/

import pygame, sys, time
from pygame.locals import *

pygame.init()

DISPLAYSURF = pygame.display.set_mode((400, 300))
pygame.display.set_caption('Memes.')


pygame.mixer.music.load("foo.mp3")
pygame.mixer.music.play()
time.sleep(2)
pygame.mixer.music.stop()

while True: # Main Loop

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

只需将foo.mp3替换为您的文件

即可

答案 2 :(得分:0)

MP3文件可以在Windows 10和Linux Fedora 31(pygame 1.9.6,python 3)上正常播放,请参见下文。

尽管pygame docs指出,您的里程可能会有所不同:“ 请注意,MP3支持受到限制。在某些系统上,不支持的格式可能会使程序崩溃,例如Debian Linux。请考虑使用OGG代替”。

import time
from pygame import mixer

def play(soundfile, duration_secs):
    """Play a soundfile for a configurable duration"""

    mixer.init()
    mixer.music.load(soundfile)
    mixer.music.play()
    time.sleep(duration_secs)
    mixer.music.stop()
    mixer.quit()

# Play for 5 seconds
play('test.mp3', 5)
相关问题