如何在 buildozer.spec python kivy 中包含 mp3 文件
How to include mp3 file in buildozer.spec python kivy
我有代码:
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.core.audio import SoundLoader
from kivy.graphics.context_instructions import Color
class TestApp(App):
def build(self):
fl = FloatLayout()
try:
sound = SoundLoader.load('magic.mp3')
if sound:
print("Sound found at %s" % sound.source)
print("Sound is %.3f seconds" % sound.length)
fl.add_widget(Label(text=str("Sound found at %s" % sound.source), pos=(0, 0), font_size=(40)))
sound.play()
except Exception as error:
fl.add_widget(Label(text=str(error), pos=(0, 0), font_size=(40)))
return fl
if __name__ == "__main__":
TestApp().run()
我在这段代码中使用了 magic.mp3,我希望能够在 .apk
文件中使用它,但是没有。我想我应该在 buildozer.spec
:
中添加 .mp3
个文件
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,mp3
我还补充了:
# (list) List of inclusions using pattern matching
source.include_patterns = assets/*,magic/*.mp3
但是我无法播放这个文件,并且出现错误:
'NoneType' object has no attribute 'source'
如何解决?希望大家帮帮我
这是一个迟来的答案,FWIW。我认为您的问题不是找不到您的 mp3,而是您的文件在 mp3 中。 python-for-android 中的 SDL2 库目前不支持 mp3(参见 https://github.com/kivy/kivy/issues/5412)。
您应该可以通过将 mp3 文件转换为 wav 或 ogg 来解决这个问题。
我有代码:
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.core.audio import SoundLoader
from kivy.graphics.context_instructions import Color
class TestApp(App):
def build(self):
fl = FloatLayout()
try:
sound = SoundLoader.load('magic.mp3')
if sound:
print("Sound found at %s" % sound.source)
print("Sound is %.3f seconds" % sound.length)
fl.add_widget(Label(text=str("Sound found at %s" % sound.source), pos=(0, 0), font_size=(40)))
sound.play()
except Exception as error:
fl.add_widget(Label(text=str(error), pos=(0, 0), font_size=(40)))
return fl
if __name__ == "__main__":
TestApp().run()
我在这段代码中使用了 magic.mp3,我希望能够在 .apk
文件中使用它,但是没有。我想我应该在 buildozer.spec
:
.mp3
个文件
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,mp3
我还补充了:
# (list) List of inclusions using pattern matching
source.include_patterns = assets/*,magic/*.mp3
但是我无法播放这个文件,并且出现错误:
'NoneType' object has no attribute 'source'
如何解决?希望大家帮帮我
这是一个迟来的答案,FWIW。我认为您的问题不是找不到您的 mp3,而是您的文件在 mp3 中。 python-for-android 中的 SDL2 库目前不支持 mp3(参见 https://github.com/kivy/kivy/issues/5412)。
您应该可以通过将 mp3 文件转换为 wav 或 ogg 来解决这个问题。