首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从kivy导入pyjnius

从kivy导入pyjnius
EN

Stack Overflow用户
提问于 2016-05-10 20:43:26
回答 2查看 1.3K关注 0票数 0

我想问一下,是否可以只从Kivy导入jnius。我使用Python for Android "qpython“发行版,Kivy在其中编译。Kivy也有pyjnius。现在我尝试使用jnius而不调用Kivy应用程序来调用Java模块?有没有想法调用kivy included模块而不导入Kivy本身,或者只在终端中调用usw Kivy而不调用App或Window?或者直接为qpython编译pyjnius的一些帮助?谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-05-10 21:23:55

Pyjnius是一个独立的模块,它不依赖于Kivy。它确实依赖于以某种方式获得一个JNIEnv*,而pyjnius目前通过一个SDL函数硬编码这样做(尽管即使SDL的eventloop实际上没有运行,这也可能会起作用)。

我不确定关于如何运行您的应用程序的实际问题(如果它在qpython中,pyjnius不工作吗?),但通常很容易修改它来以不同的方式获取指针(尽管您需要一些C代码来管理它)。这是python-for-android使用的方法,它为pyjnius打补丁以使用适当的api。

票数 0
EN

Stack Overflow用户

发布于 2017-02-26 18:35:55

这是qpython的一个问题。只有在脚本前面添加以下内容时,才能使用pyjnius:

代码语言:javascript
复制
#qpy:kivy

例如:

代码语言:javascript
复制
#-*-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()

希望这对你有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37138931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档