gpt4 book ai didi

android - Android 上的 Kivy 和 OSC

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:04 25 4
gpt4 key购买 nike

我在 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 应用程序会使用react:

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)

关于android - Android 上的 Kivy 和 OSC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com