繁体   English   中英

Pygame:无法打开 .mp3 文件

[英]Pygame: Unable to open .mp3 file

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

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 为“无法读取”,声音为“无法打开文件”。

还有另一种混音器方法, music ,您可能应该使用 - music支持 mp3,但sound不支持。 尝试这个。

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

^顺便说一句,这是一个非常潮湿的模因

所以 pygame 只允许使用声音播放 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

MP3 文件在 Windows 10 和 Linux Fedora 31(pygame 1.9.6,python 3)上为我正确播放,见下文。

尽管pygame 文档指出:“请注意 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM