python - Python-Kivy:SoundLoader.load不起作用

标签 python python-3.x audio runtime-error kivy

当我严格按照Kivy网站上的说明进行操作时,为什么不能用Kivy加载声音?任何帮助是极大的赞赏!

以下示例来自https://kivy.org/docs/api-kivy.core.audio.html:

from kivy.core.audio import SoundLoader

sound = SoundLoader.load('mytest.wav')
if sound:
    print("Sound found at %s" % sound.source)
    print("Sound is %.3f seconds" % sound.length)
    sound.play()

我已经将此示例复制并粘贴到一个空白的Python文件中,然后运行了代码。我确保为“mytest.wav”使用有效的wav文件,并将wav文件放置在与Python文件相同的目录中。

我收到以下错误消息:
/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/MyUsername/PycharmProjects/MyProject/sound_test.py
[INFO   ] [Logger      ] Record log in /Users/MyUsername/.kivy/logs/kivy_17-10-24_4.txt
[INFO   ] [Kivy        ] v1.10.1.dev0, git-Unknown, 20170911
[INFO   ] [Python      ] v3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[INFO   ] [AudioGstplayer] Using Gstreamer 1.12.2.0
[INFO   ] [Audio       ] Providers: audio_gstplayer, audio_sdl2 (audio_ffpyplayer, audio_avplayer ignored)
 Traceback (most recent call last):
   File "/Users/MyUsername/PycharmProjects/MyProject/sound_test.py", line 3, in <module>
     sound = SoundLoader.load("mytest.wav")
   File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/__init__.py", line 86, in load
     return classobj(source=filename)
   File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/audio_gstplayer.py", line 45, in __init__
     super(SoundGstplayer, self).__init__(**kwargs)
   File "kivy/_event.pyx", line 262, in kivy._event.EventDispatcher.__init__
   File "kivy/properties.pyx", line 478, in kivy.properties.Property.__set__
   File "kivy/properties.pyx", line 516, in kivy.properties.Property.set
   File "kivy/properties.pyx", line 571, in kivy.properties.Property.dispatch
   File "kivy/_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
   File "kivy/_event.pyx", line 1120, in kivy._event.EventObservers._dispatch
   File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/__init__.py", line 174, in on_source
     self.load()
   File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/kivy/core/audio/audio_gstplayer.py", line 62, in load
     self.player.load()
   File "kivy/lib/gstplayer/_gstplayer.pyx", line 233, in kivy.lib.gstplayer._gstplayer.GstPlayer.load
 kivy.lib.gstplayer._gstplayer.GstPlayerException: Unable to create a playbin

Process finished with exit code 1

我也尝试摆脱第3行下面的代码,但这不会影响错误消息。

最佳答案

在Windows上,音乐文件的所有扩展名都可以使用,因为kivy随同GStreamer一起处理所有格式,但是在其他平台上,只有.ogg可以使用,请将文件转换为ogg格式,然后重试。

如果它不起作用,我认为您的kivy安装存在问题,请尝试按照以下步骤重新安装kivy:

1.使用自制软件安装要求:

$ brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer

2,使用点子安装cython 0.23和kivy:
 $ pip install -I Cython==0.23
 $ USE_OSX_FRAMEWORKS=0 pip install kivy

我真的希望这能奏效,因为我没有Mac OS对其进行测试

关于python - Python-Kivy:SoundLoader.load不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46918594/

相关文章:

python - 使用 Flask Python 将点几何插入 PostGIS

python - 如何设置 django 1.8 以使用 jinja2?

python - 如何为 480p 和 1080p 视频获得类似于 youtube 的 ffmpeg 配置?我有一个功能,但输出质量太低

python - 无法通过 pipelinenv 安装 html 或 re

python - 如何 pickle 自己?

Python正则词切割

python 对数

javascript - 是否有任何 JavaScript/jQuery 插件允许我在播放歌曲达到特定播放时间时触发 Action ?

audio - FFmpeg 桌面录制不适用于蓝牙音频源

audio - Windows Server 2008 R2上的虚拟音频设备和媒体基础