我试着通过kivy播放声音,但一直无法工作。释放按钮时,方法似乎运行成功(即print语句运行,应用程序没有崩溃,也没有错误消息出现),但没有声音播放。查看kivy数据记录器后,标题中的警告显示。
皮
from kivy.app import App
from kivy.core.audio import SoundLoader
from kivy.uix.boxlayout import BoxLayout
class Play(BoxLayout):
sound_done = SoundLoader.load('beep-01a.wav')
sound_finishing = SoundLoader.load('beep-07.wav')
def play_sound_1(self):
self.sound_finishing.play()
print ("sound 1")
def play_sound_2(self):
self.sound_done.play()
print ("sound 2")
class Sound(App):
def build(self):
p=Play()
#p.start()
return p
if __name__ == "__main__":
Sound().run()
千伏
<BoxLayout>
Button:
text: "sound 1"
on_release:
root.play_sound_1()
Button:
text: "sound 2"
on_release:
root.play_sound_2()
数据记录
[INFO ] [Logger ] Record log in C:\Users\User\.kivy\logs\kivy_19-
07-15_9.txt
[INFO ] [Kivy ] v1.11.0
[INFO ] [Kivy ] Installed at "C:\ProgramData\Anaconda3\lib\site-
packages\kivy\__init__.py"
[INFO ] [Python ] v3.7.1 (default, Dec 10 2018, 22:54:23) [MSC
v.1915 64 bit (AMD64)]
[INFO ] [Python ] Interpreter at
"C:\ProgramData\Anaconda3\python.exe"
[INFO ] [Factory ] 184 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil,
img_gif (img_ffpyplayer ignored)
[INFO ] [Audio ] Providers: audio_sdl2 (audio_ffpyplayer ignored)
[WARNING] Deprecated property "<AliasProperty name=filename>" of object "
<kivy.core.audio.audio_sdl2.SoundSDL2 object at 0x0000028632B1CAD8>" was
accessed, it will be removed in a future version
[WARNING] [AudioSDL2 ] Unable to load beep-01a.wav: b'Mix_LoadWAV_RW
with NULL src'
[WARNING] [AudioSDL2 ] Unable to load beep-07.wav: b'Mix_LoadWAV_RW with
NULL src'
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] Backend used <glew>
[INFO ] [GL ] OpenGL version <b'4.5.13467 Compatibility Profile
Context 21.19.414.1792'>
[INFO ] [GL ] OpenGL vendor <b'ATI Technologies Inc.'>
[INFO ] [GL ] OpenGL renderer <b'AMD Radeon R7 Graphics'>
[INFO ] [GL ] OpenGL parsed version: 4, 5
[INFO ] [GL ] Shading version <b'4.50'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not
docked
[INFO ] [Text ] Provider: sdl2
[INFO ] [Base ] Start application main loop
[INFO ] [GL ] NPOT texture support is available
sound 2
sound 2
sound 1
sound 1
[INFO ] [WindowSDL ] exiting mainloop and closing.
[INFO ] [Base ] Leaving application in progress...
Process finished with exit code 0
我试过使用wav,mp3和ogg的声音文件类型,但都没有工作。我已经坚持了很长一段时间,所以任何帮助将是非常感谢!谢谢
1条答案
按热度按时间polhcujo1#
您提供的音频文件路径可能不正确。您只提供了文件名。
我,也有这个错误,并降落在这里...意识到的信息:
b '使用空源混合加载WAV_RW'
可能是说wav的路径在加载wav时为空-可能是找不到文件。
我通过在应用程序结构中更正wav文件的相对路径修复了这个错误。
例如,如果file.wav位于/app/data/file.wav,而主应用程序位于/app/www.example.com,则提供给SoundLoader. load()的路径应为"data/file.wav"。main.py, the path provided to SoundLoader.load() should be 'data/file.wav'.
如果使用os. path. join(abs,rel)添加解决方案,它可能会更具可移植性。
干杯。