【问题标题】:Pygame: Unable to open .mp3 filePygame:无法打开 .mp3 文件
【发布时间】:2016-04-12 15:50:11
【问题描述】:

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

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 为“无法打开文件”。

【问题讨论】:

    标签: python audio pygame


    【解决方案1】:

    所以 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 替换为您的文件

    【讨论】:

    • 出于某种奇怪的原因...它仍然不适用于 OGG 或 WAV 文件...我刚刚尝试过。给了我同样的错误。
    • 我会发布你的代码,用音乐修改,为我工作
    • 是的...没用。和我在帖子里写的一样。
    • 老实说,这可能只是您尝试加载的文件的问题,可能有一些问题,请尝试加载其他文件以查看它是否有效
    • 求助。刚刚尝试在 IDLE 中运行它。显然,我使用的 IDE 只是出现故障并且没有正确保存代码。好吧,无论如何感谢您的帮助。 :P
    【解决方案2】:

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

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

    ^顺便说一句,这是一个非常阴暗的模因

    【讨论】:

    • 我在 m8 周围有最阴暗的模因……这也没用。给了我一个类似的错误。使用新错误编辑帖子。
    【解决方案3】:

    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)
    

    【讨论】:

    • 我让它在 Mac 机器上与 mp3 一起工作,但在 Linux Mint 机器上却不行。运行 python 3 和 pygame 2.0.0。 Wav 对两者都有效。
    猜你喜欢
    • 2016-05-25
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    相关资源
    最近更新 更多