【问题标题】:Cannot play ogg file in Python无法在 Python 中播放 ogg 文件
【发布时间】:2020-01-08 07:20:38
【问题描述】:

所以我尝试将我的 midi 文件转换为 ogg,但我仍然无法让它工作......希望你们中的一些人能帮助我吗? 这是我的代码:

showTextScreen('Tetromino')
while True: # game loop
    if random.randint(0, 1) == 0:
        pygame.mixer.music.load('tetrisb.mid')
    else:
        pygame.mixer.music.load('tetrisc.mid')
    pygame.mixer.music.play(-1, 0,0)
    runGame()
    pygame.mixer.music.stop()
    showTextScreen('Game Over')

它给出了无法打开 tetrisb.mid 的错误 我尝试重命名它,它仍然说同样的...... 如果我能解决这个问题,我可能会修复另一个文件

这是错误:

Traceback (most recent call last):
  File "H:\Programmering\Python\TETRIS!.py", line 487, in <module>
    main()
  File "H:\Programmering\Python\TETRIS!.py", line 166, in main
    pygame.mixer.music.load('tetrisc.mid')
pygame.error: Couldn't open 'tetrisc.mid'

我使用的是 windows 和 python 3.8,我不介意我使用的是 midi 还是 ogg... 我将midi文件更改为ogg,希望它能解决问题,但没有。 我的文件是 ogg atm

【问题讨论】:

  • 能否请您edit您的问题并添加完整的错误消息?
  • 您能否提及您尝试加载的文件的原始格式是什么?你的目标是什么?是播放OGG文件吗?还是播放 MIDI 文件?
  • 什么操作系统和设备?我在课堂上的 Raspberry Pi 上遇到了类似的问题,它从控制台播放音乐,但不是 pygame - 问题是缺少一些系统包。
  • 刚刚更新了 :) 希望它能回答你所有的问题
  • 声音文件在哪里,你确定它在正确的路径中吗?

标签: python pygame midi ogg


【解决方案1】:

您似乎需要为您的 midi 文件提供正确的路径。 This question 关于如何检查文件是否存在也可能会有所帮助。

如果文件格式不受支持或不存在,来自pygame.mixer.music.load 的错误消息会有所不同:

>>> pygame.mixer.music.load("nonexistent.file")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Couldn't open 'nonexistent.file'
>>> pygame.mixer.music.load(r"c:\tmp\empty.file")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Couldn't read from RWops
>>> pygame.mixer.music.load(r"c:\tmp\robots.txt")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Module format not recognized
>>> pygame.mixer.music.load(r"C:\Windows\media\flourish.mid")
>>> pygame.mixer.music.play(-1, 0)
>>> pygame.mixer.music.stop()

请注意,在指定文件路径时,\ 是转义字符,其处理方式不同。因此,您可以改用\\,或者在字符串的开头、引号之前放置r,如上所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多