首页 > 解决方案 > Kivy 在更改音频提供者时引发错误

问题描述

我有一个用kivy制作的简单 mp3 播放器应用程序,它显示了源代码、滑块和播放按钮。

kivy 的SoundLoader的问题在于默认情况下它使用不支持音频搜索的sdl2 。所以我将其更改为ffpyplayer但 kivy 要么引发错误,要么给我这个警告并且根本不播放音频:

[WARNING] [Audio       ] Unable to find a loader for <C:\Users\Family\Downloads\10_poker_face.mp3>

这让我感到非常震惊,因为我以前做过这件事,而且做得很成功。目前我正在用pycharm编写代码,我认为 kivy 安装可能存在问题,所以我将其删除并尝试安装kivy[base,media] 和 kivy[full]但我没有看到任何变化,事实上,情况可能变得更糟。

有趣的是,如果我将代码复制到 Visual Studio 中并在那里运行,它会完美运行!怎么了?pycharm有什么问题吗?还是我的 kivy 安装已损坏?我的代码:

import os
os.environ["KIVY_AUDIO"] = "ffpyplayer"
from kivy.lang import Builder
from kivy.core.audio import SoundLoader
from kivy.app import App


class Example(App):
    def __init__(self, **kwargs):
        super(Example, self).__init__(**kwargs)
        self.path = "C:/Users/Family/Downloads/10_poker_face.mp3"
        self.song = SoundLoader.load(self.path)
        self.kv = Builder.load_string('''
BoxLayout:
    orientation: "vertical"
    Label:
        text: app.path
        font_size: 32
    Slider:
        id: slider
        min: 0
        max: app.song.length
        on_value: app.song.seek(self.value)
    Button:
        text: "Play"
        on_release: 
            print(slider.max)
            app.song.play()
''')

    def build(self):
        return self.kv


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

标签: pythonpython-3.xkivykivy-language

解决方案


推荐阅读