Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rug中的开放式声控(OSC)阵列。C中的OSC#_C#_Arrays_Osc - Fatal编程技术网

Rug中的开放式声控(OSC)阵列。C中的OSC#

Rug中的开放式声控(OSC)阵列。C中的OSC#,c#,arrays,osc,C#,Arrays,Osc,我正在用C#编写一些代码,将Rug.OSC库用于开放式声音控制或OSC。我已经成功地将OSC消息从它发送到处理中的其他代码,等等,但是只有单个或短的浮点或整数列表,而不是数组。我有一个相当大的数组(1462个浮点数),我想在一条消息中作为数组发送,而不是1462个单浮点数消息,但是我在MSV中只得到错误 我想在C#代码中做的基本上是: float[]myArray=新的float[1462]; myOscMessage=newoscmessage(“/array”,myArray) 我查看了这里

我正在用C#编写一些代码,将Rug.OSC库用于开放式声音控制或OSC。我已经成功地将OSC消息从它发送到处理中的其他代码,等等,但是只有单个或短的浮点或整数列表,而不是数组。我有一个相当大的数组(1462个浮点数),我想在一条消息中作为数组发送,而不是1462个单浮点数消息,但是我在MSV中只得到错误

我想在C#代码中做的基本上是:

float[]myArray=新的float[1462]; myOscMessage=newoscmessage(“/array”,myArray)

我查看了这里的语法:

并尝试了如下语法:

myOscMessage=newoscmessage(“/array”,{myArray})

--或--

myOscMessage=newoscmessage(“/array”,newfloat[]{myArray})

--或--

myOscMessage=newoscmessage(“/array”,newfloat[]{newfloat[]{myArray}})

但我会遇到如下错误:

Rug.Osc.dll中发生类型为“System.ArgumentException”的未处理异常

--或--

无法将float[]转换为float


我可能错过了这里的简单,但我似乎无法理解。关于如何使用Rug.OSC库通过C#中的OSC发送浮点数组的任何建议?

目前,无法在
OscMessage
构造函数中将类型为
float
的数组用作参数。但是,可以使用
对象[]

您可以使用下面的代码将
float[]
强制转换为
object[]

float[] floats = new float[] { 1f, 2f, 3f, 4f, 5f, 6f, 7f, 9f, 10f }; 

// cast float array into an object array            
object[] objects = floats.Cast<object>().ToArray();            

OscMessage message = new OscMessage("/test", objects);
float[]floats=newfloat[]{1f、2f、3f、4f、5f、6f、7f、9f、10f};
//将浮点数组强制转换为对象数组
object[]objects=floats.Cast().ToArray();
OscMessage=新的OscMessage(“/test”,对象);
消息的内容将是
/test、1f、2f、3f、4f、5f、6f、7f、9f、10f

在下一版本中,我将研究添加使用任何有效OSC类型的数组参数创建消息的功能


免责声明:我是Rug.Osc

的作者,还应注意,在默认设置下,使用Rug.Osc通过UDP在单个消息中发送1462个浮点值是不可能的,因为它将超过最大数据包大小。由于为每个数组元素编写了一个typetag条目,因此它的大小超过7310字节。最好以
字节[]
(blob)的形式发送,因为类型标记开销最小。您可能还需要考虑将阵列切片,或者使用非udp传输层(如TCP)。