我遇到一个问题,Kivy 在 android 上使用 sdl2,并且工作正常,但在 Linux 上它使用 ffpyplayer,但不能。
所以我想让Kivy也在linux上使用sdl2,但是sdl2似乎根本无法在linux上工作。
$ KIVY_AUDIO=sdl2 python min_audio_example.py
[INFO ] [Audio ] Providers: audio_sdl2 (audio_ffpyplayer ignored)
[CRITICAL] [AudioSDL2 ] Unable to open mixer: b'No such audio device'
Run Code Online (Sandbox Code Playgroud)
这是一个演示问题的最小示例。
#!/usr/bin/env python
# works with:
# export KIVY_AUDIO=ffpyplayer
# fails with:
# export KIVY_AUDIO=sdl2
from kivy.app import App
from kivy.core.audio import SoundLoader
def playsound(dummy):
sound = SoundLoader.load("440Hz_44100Hz_16bit_05sec.ogg")
if sound:
print("Sound found at %s" % sound.source)
print("Sound is %.3f seconds" % sound.length)
print("sound state", sound.state)
sound.play()
print("sound state", sound.state)
import time
time.sleep(5)
class TestApp(App):
playsound(None)
if __name__ == '__main__':
TestApp().run()
Run Code Online (Sandbox Code Playgroud)
我认为这可能与 kivy 轮的构建方式有关,所以我尝试了
pip uninstall kivy
pip install -U --no-binary=:all: kivy
Run Code Online (Sandbox Code Playgroud)
那时,kivy 似乎根本没有看到 sdl2!
$ KIVY_AUDIO=sdl2 python min_audio_example.py
[INFO ] [Audio ] Providers: (audio_ffpyplayer, audio_pygame ignored)
[WARNING] [Audio ] Unable to find a loader for </home/john/data/sight-sing/sightsinger/440Hz1secfadeinandout.ogg>
Run Code Online (Sandbox Code Playgroud)
它现在将audio_ffpyplayer和audio_pygame列为提供程序,并且由于环境变量而没有使用其中任何一个。(pygame 提供程序似乎也已损坏,但 ffpyplayer 仍然有效)
有人可以帮忙吗?
这是 kivy 轮构建,我尝试的修复几乎是正确的。
问题是,如果 kivy 是在缺少依赖项的情况下构建的,它将在不支持事物的情况下构建,但不会抱怨。
因此,在 debian 上,安装 kivy 的依赖项:
(https://kivy.org/doc/stable/installation/installation-linux-venvs.html#installation-in-venv)
sudo apt-get install python-pip build-essential git python python-dev ffmpeg libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev zlib1g-dev
Run Code Online (Sandbox Code Playgroud)
然后:
pip uninstall kivy
Run Code Online (Sandbox Code Playgroud)
然后安装,不使用损坏的预制轮
pip install --no-binary kivy kivy
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3287 次 |
| 最近记录: |