我在kivy上做了一个简单的OSC测试,看起来我在Android手机上运行它们时遇到了问题。为了更好地理解Kivy和OSC是如何工作的,我做了一个小测试,应该可以显示应用程序和另一台计算机之间的通信。特别是服务器
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import *
from kivy.uix.button import Button
from kivy.clock import Clock
from kivy.lib.osc import oscAPI
class CButton(Button):
def __init__(self, **kwargs):
kwargs['text'] = kwargs.get('text', 'empty')
super(CButton, self).__init__(**kwargs)
class OscWidget(GridLayout):
def __init__(self, **kwargs):
super(OscWidget, self).__init__(**kwargs)
def callback(self, instance, *args):
self.oscbutton.text = instance[2]
oscAPI.sendMsg('/current/reply', dataArray=['answer'], ipAddr='192.168.1.101', port=8889)
class OscButtonApp(App):
def buttpress(self, *args):
oscAPI.sendMsg('/current/reply', dataArray=['call'], ipAddr='192.168.1.101', port=8889)
def build(self):
btnapp = OscWidget()
oscAPI.init()
oscid = oscAPI.listen(port=8889)
osc.bind(oscid, btnapp.callback, '/test/reply')
Clock.schedule_interval(lambda *x: osc.readQueue(oscid), 0)
return btnapp
if __name__ == '__main__':
OscButtonApp().run()
当我在我的电脑上测试它时,它以两种方式工作,所以从另一个终端,我可以发送一条消息,Kivy应用程序会做出反应:
oscAPI.sendMsg('/test/reply', dataArray=['change'], ipAddr='localhost', port=8889)
发送此信息会让Kivy更改按钮上的标签。此外,在另一个终端上设置监听端口(并在脚本上编辑输出端口)会向我显示从Kivy发送的消息。不过,当我在手机上尝试这个简单的应用程序时,它看起来只能发送消息,而不能接收消息。我做错了什么?
谢谢
默认情况下,oscApi.listen只监听127.0.0.1。如果你想收到每个人的消息,你需要听0.0.0.0
:
oscid = oscAPI.listen(ipAddr='0.0.0.0', port=8889)
Kivy 是一个开源的 Python 库,用于快速开发利用创新用户界面的应用程序,如多点触摸应用程序。 Kivy 是用 Python 和 Cython 编写的,基于OpenGL ES 2,支持各种输入设备并有一个广泛的部件库。使用同一个代码库,你可以针对Windows、macOS、Linux、Android和iOS。所有的Kivy部件都支持多点触摸。 示例代码: from kivy.app imp
问题内容: 假设我正在制作健身应用程序,您可以在其中进行锻炼。配置锻炼后,您需要保存它。如何添加此功能,以便当他退出应用程序并再次打开它时,他可以查看他的锻炼? 我专门在Android上工作。 这可用于保存本地游戏保存和数据。 问题答案: 我相信Kivy具有处理此问题的模块。尽管它仍(在撰写本文时)仍处于实验阶段。在这里查看:http : //kivy.org/docs/api- kivy.sto
我在OS X(10.10.1)上使用Kivy和buildozer,但我无法在我的android设备上运行Kivy相机应用程序。不使用相机的情况很好。代码如下,我还可以发布buildozer规范文件和调试信息。任何帮助都很感激。 从kivy.App导入应用程序从kivy.uix.Widget导入小部件从kivy.uix.Camera导入相机从kivy.uix.Button导入按钮从kivy.core
问题内容: 假设我正在构建一个井字游戏(因为它与结构非常相似),我希望结果在弹出窗口中显示,并带有一个新的游戏按钮,并且希望此弹出窗口允许我访问设置(另一个按钮)并对其进行更改,使其始终位于弹出窗口中,然后离开并最终将其关闭并开始新游戏。 我希望我可以保持秩序,因此有一个单独的弹出窗口类,可以在其中构建自定义弹出窗口。 显而易见,我将newgame方法和reset方法作为我的游戏网格类的方法。另一
ZeroNet-kivy 简体中文Support This app is a simple GUI to control the ZeroNet client. It is packaged using buildozer and uses Kivy. Currently the code of this repo only works on Android, anyone interested
Kivy iOS,此工具旨在为 iOS 编译必要的库以运行应用程序并管理 Xcode 项目的创建。 在创建 Xcode 项目之前至少需要编译一次。 目前支持的设备: iPhone Simulator (x86 and x86_64) iPhone / iOS (armv7 and arm64)