我在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应用程序会做出反应:
^{pr2}$发送这个会让Kivy改变按钮上的标签。另外,在另一个终端上设置一个侦听端口(并编辑脚本上的输出端口)会向我显示Kivy发送的消息。 不过,当我在手机上试用这个简单的应用程序时,它看起来只能发送消息,而不能接收消息。 我做错什么了?在
谢谢
默认情况下,
oscApi.listen
只监听127.0.0.1
。如果您想接收来自每个人的消息,您需要收听0.0.0.0
:相关问题 更多 >
编程相关推荐