2014-09-11 3 views
1

Я установил kivy версии 1.8.1 для Python 2.7 на Fedora 20Audio (mp3) пропаривания в Android и IOS, используя kivy

Поскольку я новичок в kivy Я хотел бы знать, могу ли я использовать kivy для аудио потоковое в Android и IOS

Я попробовал пример, но он даже не играл на моем рабочем столе

from kivy.app import App 
from kivy.core.audio import SoundLoader 

class TestApp(App): 
    def build(self): 
     sound = SoundLoader.load('http://194.106.198.57:8090/club_low.mp3') 
     if sound: 
      print("Sound found at %s" % sound.source) 
     print("Sound is %.3f seconds" % sound.length) 
     sound.play() 
TestApp().run() 

передать выходные данные выше кода:

[INFO    ] Kivy v1.8.0 
[INFO    ] [Logger  ] Record log in /home/mohammad/.kivy/logs/kivy_14-09-11_13.txt 
[INFO    ] [Factory  ] 157 symbols loaded 
[DEBUG    ] [Cache  ] register <kv.lang> with limit=None, timeout=Nones 
[DEBUG    ] [Cache  ] register <kv.image> with limit=None, timeout=60s 
[DEBUG    ] [Cache  ] register <kv.atlas> with limit=None, timeout=Nones 
[INFO    ] [Image  ] Providers: img_tex, img_dds, img_pygame, img_gif (img_pil ignored) 
[DEBUG    ] [Cache  ] register <kv.texture> with limit=1000, timeout=60s 
[DEBUG    ] [Cache  ] register <kv.shader> with limit=1000, timeout=3600s 
[DEBUG    ] [Audio  ] register SoundPygame 
[INFO    ] [Audio  ] Providers: audio_pygame (audio_pygst, audio_sdl ignored) 
[DEBUG    ] [App   ] Loading kv </home/work/python/pama_radio/andriod_app/test.kv> 
[DEBUG    ] [App   ] kv </home/work/python/pama_radio/andriod_app/test.kv> not found 
[WARNING   ] [Audio  ] Unable to find a loader for <http://194.106.198.57:8090/club_low.mp3> 
Traceback (most recent call last): 
    File "/home/work/python/pama_radio/andriod_app/main.py", line 11, in <module> 
    TestApp().run() 
    File "/usr/lib/python2.7/site-packages/kivy/app.py", line 766, in run 
    root = self.build() 
    File "/home/work/python/pama_radio/andriod_app/main.py", line 9, in build 
    print("Sound is %.3f seconds" % sound.length) 
AttributeError: 'NoneType' object has no attribute 'length' 

Process finished with exit code 1 

Я пробовал модули видео и видео плеера, он будет работать для потоковой передачи только в DESKTOPS, он не будет работать на Android (я не пытался IOS) Пожалуйста, дайте мне знать, могу ли я использовать другие форматы (например, aac и ogg)

ответ

1

Это происходит потому, что на рабочем столе вы используете gstplayer - поставщик аудиосигналов на основе GStreamer, в то время как Android использует pygame в качестве своего поставщика аудио. Хотя GStreamer поддерживает потоковое аудио по сети, pygame нет.

Если посмотреть на выходе работает приложение на рабочем столе, вы должны увидеть следующее:

[INFO ] [Audio  ] Providers: audio_gstplayer, audio_pygame (audio_ffpyplayer, audio_sdl ignored) 

Это означает, что Kivy использует как gstplayer и Pygame - если gstplayer не может обработать данный тип носителя, то Киви попытается использовать pygame. Но gstplayer не доступен на Android:

[INFO    ] [Audio  ] Providers: audio_pygame (audio_pygst, audio_sdl ignored) 

КСН, аудио поставщик SDL используется, и я считаю, что может поддерживать потоковое, поэтому вам может повезти там. Вы также можете задать submit an issue on github, чтобы добавить эту функцию.

+0

спасибо за то, что поняли, главная цель проекта - андроид, поэтому мне нужно заставить работать потоковое аудио, я могу использовать SDK, например [vitamio] (https://www.vitamio.org/en/) на kivy ?, Мне действительно нужны советы или идеи по этому поводу, спасибо – Mohammadhzp

Смежные вопросы