python - MP3 文件突然无法用 kivy 播放

标签 python audio mp3 kivy

我有一款游戏,上次我检查时运行良好。我今天遇到的问题,由于某种原因我还没有弄清楚,kivy不会播放mp3文件,但它仍然会播放wavs。重申一下,这以前从来都不是问题,游戏在我的 ubuntu Linux 操作系统和 Android 上运行都没有问题编辑:事实上,它在我的 Android 上仍然运行良好。我现在在 ubuntu 上启动游戏时出现以下错误:

File "/home/yerman/python/bird/gamescreens.py", line 107, in update
     point_play    = self.point.play
 AttributeError: 'NoneType' object has no attribute 'play'

我也不知道为什么回溯中的 point_play= 之间有这样的空格,因为它与文件中的不同。我很确定自从上次玩游戏以来我没有改变任何东西。 mp3 文件本身也没有任何问题。将文件转换为 wav 并使用它可以正常工作。

然后我编写了这个小脚本并运行它,得到了相同的结果:

ma​​in.py:

import kivy
kivy.require('1.8.0')
import sys
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.core.audio import SoundLoader


class PressMe(BoxLayout):

    sound = SoundLoader.load('point.mp3')

    def mycallback(self):
        self.sound.play()

class myApp(App):

    def build(self):
        return PressMe()

if __name__ == '__main__':
    myApp().run()

kv 文件:

#: kivy 1.8.0

<PressMe>:
    Button:
        text: 'press me'
        on_press: root.mycallback()

我真的不知道为什么这不起作用,有人可以解释一下吗?

最佳答案

当加载程序返回 NoneType 时,通常意味着任何可用的提供程序都无法加载该文件。在 Android 上, native 提供 MP3 支持,但对于 Ubuntu,您需要有 gstreamer。它停止工作的确切原因可能取决于您安装 Kivy 的方式,但如果您通过 pip 或从 git 存储库构建进行安装,那么您系统上的库可能已更新。

确保您已安装 libgstreamer1.0-dev 并重建 Kivy(如果从 pip 或 git 安装)。如果这没有帮助,那么这个问题可能会在我们的 IRC channel #kivy on freenode 上更容易解决。 .

关于python - MP3 文件突然无法用 kivy 播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044949/

相关文章:

用于比较 MP3 内容的 java api?

在我不得不重置适配器后,蓝牙的 Python 代码抛出错误

python - 无法在 Python API 中为新的 Google Cloud Platform 项目启用计费

python - 如何在 python 3 中解析 excel 文档中的文本?

audio - 如何使用循环正确编码某些音频合成器?

javascript - 如何在Vue3中播放mp3文件

python struct.pack数据有冗余0

c# - 学习用于处理.net中音频的资源?

iphone - [NSMutableArray objectAtIndex :]: index 0 beyond bounds for empty array from AVURLAsset

java - JLayer Player 控制音量