python - 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()
解决方案
推荐阅读
- netbeans - Glassfish 服务器无法启动 _JAVA_OPTIONS
- java - 如何根据集合大小确定使用哪种方法
- android - Xamarin 是否支持 Xamarin Android 绑定库中的 Kotlin 协程?
- c++ - 实现一个符合 C++17 的 STL 容器?
- html - 我是否能够在仍然使用 Pandas html_read 的同时修复 DataFrame 中的标题?
- java - 下面的任务是做什么的?
- java - 为什么从另一个方法android调用时我得到空的arrayList
- r - 如何在 R 中编写固定效应泊松模型?
- c# - C# KeyUp & KeyDown 文本框事件来控制列表框的选中项
- excel - 每次导入后对所有列值求和