kurento:如何将 guint8 * 作为 int[] 传递给 java 服务器
kurento: How to pass guint8 * to java server as an int[]
我正在尝试将 GstBuffer
个对象 map.data
发送到 java 服务器。我创建了一个参数为 int[]
的事件,但是在引发事件时,我在编译时收到以下错误。
error: no matching function for call to ‘kurento::module::vadcustomfilter::BufferReceived::BufferReceived(std::shared_ptr<kurento::MediaObject>, const char [16], int*)’
BufferReceived event (shared_from_this (), "Buffer Received", ((int *)buffer));
map.data
的类型是 guint8 *
类型转换有什么问题吗?
我尝试将 map.data
作为 std::string
发送,但在 java 端我没有收到完整的字符串。
将 guint8*
转换为 char*
没问题,因为只有符号发生变化。转换为 int *
是不行的,因为大小不同,为了发送这种事件,您可能需要将 guint8
的数组复制到 int
的数组。不过觉得这算不上什么快速操作,也没有序列化这种大事件,所以不要指望有什么了不起的表现。
此外,当你声明一个数组是std::vector<int>
时,kurento事件期望什么(你应该检查BufferReceived
的签名),所以在任何情况下你都需要创建数组并复制内容。
我正在尝试将 GstBuffer
个对象 map.data
发送到 java 服务器。我创建了一个参数为 int[]
的事件,但是在引发事件时,我在编译时收到以下错误。
error: no matching function for call to ‘kurento::module::vadcustomfilter::BufferReceived::BufferReceived(std::shared_ptr<kurento::MediaObject>, const char [16], int*)’
BufferReceived event (shared_from_this (), "Buffer Received", ((int *)buffer));
map.data
的类型是 guint8 *
类型转换有什么问题吗?
我尝试将 map.data
作为 std::string
发送,但在 java 端我没有收到完整的字符串。
将 guint8*
转换为 char*
没问题,因为只有符号发生变化。转换为 int *
是不行的,因为大小不同,为了发送这种事件,您可能需要将 guint8
的数组复制到 int
的数组。不过觉得这算不上什么快速操作,也没有序列化这种大事件,所以不要指望有什么了不起的表现。
此外,当你声明一个数组是std::vector<int>
时,kurento事件期望什么(你应该检查BufferReceived
的签名),所以在任何情况下你都需要创建数组并复制内容。