当我严格按照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/