首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用osc4py3从Python发送消息?

使用osc4py3从Python发送消息?
EN

Stack Overflow用户
提问于 2020-01-10 04:05:41
回答 2查看 478关注 0票数 0

我目前正在尝试弄清楚如何从Python向Max/MSP发送OSC消息。我目前正在使用osc4py3来做这件事,我有一个文档中的示例代码,假设它是可以工作的,写在这里:

代码语言:javascript
复制
from osc4py3.as_eventloop import *
from osc4py3 import oscbuildparse

# Start the system.
osc_startup()

# Make client channels to send packets.
osc_udp_client("127.0. 0.1", 5000, "tester")

msg = oscbuildparse.OSCMessage("/test/me", ",sif", ["text", 672, 8.871])
osc_send(msg, "tester")

Max中的接收器只是一个监听5000端口的udprecieve对象。我设法完成了向Max发送OSC消息的处理,使用oscp5库非常简单,但在Python语言中我似乎就没有那么幸运了。

我错过了什么?此外,我并不完全理解在osc4py3中构建OSC消息的结构,即使我已经尽了最大的努力阅读文档;如果有人愿意解释一下到底发生了什么(即参数),比如

代码语言:javascript
复制
msg = oscbuildparse.OSCMessage("/test/me", ",sif", ["text", 672, 8.871])

那我会永远心存感激。

我完全愿意使用另一个OSC库,但我所要求的只是浏览一下如何发送消息(我尝试过使用pyOSC,但事实证明这对我来说太混乱了)。

EN

回答 2

Stack Overflow用户

发布于 2020-03-02 22:14:04

也许你已经解决了这个问题,但是在上面的代码中有两个问题。一个是IP地址格式(第二个“0”前面有一个空格)。然后在末尾需要命令osc.process()。因此,下面的方法应该是可行的

代码语言:javascript
复制
from osc4py3.as_eventloop import *
from osc4py3 import oscbuildparse

# Start the system.
osc_startup()

# Make client channels to send packets.
osc_udp_client("127.0.0.1", 5000, "tester")

msg = oscbuildparse.OSCMessage("/test/me", ",sif", ["text", 672, 
8.871])
osc_send(msg, "tester")
osc_process()

希望它能解决问题

票数 0
EN

Stack Overflow用户

发布于 2020-06-08 04:22:56

在osc4py3中有不同可能的调度策略。文档使用as_eventloop的事件循环模型,其中用户代码必须定期调用osc_process(),以便让osc4py3处理内部消息队列和通信。

用于发送OSC消息client exampleosc_process()调用包装在一个循环中(通常是在一个事件处理循环中)。

您可以通过在代码开头导入具有完整多线程调度策略的名称来取消osc_process()调用:

代码语言:javascript
复制
from osc4py3.as_allthreads import *

第三种调度策略是as_comthreads,其中通信在后台线程中处理,但接收到的消息(在服务器端)在osc_process()调用时同步处理。

(作者: osc4py3)

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

https://stackoverflow.com/questions/59671361

复制
相关文章

相似问题

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