我想问一下,是否可以只从Kivy导入jnius。我使用Python for Android "qpython“发行版,Kivy在其中编译。Kivy也有pyjnius。现在我尝试使用jnius而不调用Kivy应用程序来调用Java模块?有没有想法调用kivy included模块而不导入Kivy本身,或者只在终端中调用usw Kivy而不调用App或Window?或者直接为qpython编译pyjnius的一些帮助?谢谢
发布于 2016-05-10 21:23:55
Pyjnius是一个独立的模块,它不依赖于Kivy。它确实依赖于以某种方式获得一个JNIEnv*,而pyjnius目前通过一个SDL函数硬编码这样做(尽管即使SDL的eventloop实际上没有运行,这也可能会起作用)。
我不确定关于如何运行您的应用程序的实际问题(如果它在qpython中,pyjnius不工作吗?),但通常很容易修改它来以不同的方式获取指针(尽管您需要一些C代码来管理它)。这是python-for-android使用的方法,它为pyjnius打补丁以使用适当的api。
发布于 2017-02-26 18:35:55
这是qpython的一个问题。只有在脚本前面添加以下内容时,才能使用pyjnius:
#qpy:kivy例如:
#-*-coding:utf8;-*-
#qpy:2
#qpy:kivy
from kivy.app import App
from kivy.uix.button import Button
from jnius import autoclass
MediaPlayer = autoclass('android.media.MediaPlayer')
player=MediaPlayer()
media="/storage/emulated/legacy/YOUR_MEDIA_FILE"
def reset_player():
if (player.isPlaying()):
player.stop()
player.reset()
def restart_player(_):
reset_player()
try:
player.setDataSource(media)
player.prepare()
player.start()
except:
player.reset()
class App(App):
def build(self):
return Button(text='Hello world!',on_release=restart_player)
if __name__=="__main__":
App().run()希望这对你有帮助!
https://stackoverflow.com/questions/37138931
复制相似问题