代码之家  ›  专栏  ›  技术社区  ›  Sagar Pilkhwal

kurento:如何将guint8*作为int[]传递给java服务器

  •  0
  • Sagar Pilkhwal  · 技术社区  · 8 年前

    我正在尝试发送 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));
    

    地图数据 类型为 guint8 *

    我在类型转换中有什么问题吗?

    我试着发送 地图数据 std::string 但在java端,我没有收到完整的字符串。

    1 回复  |  直到 8 年前
        1
  •  2
  •   santoscadenas    8 年前

    铸造 guint8* char* 没关系,因为只有符号会改变。铸造至 int * 不确定,因为大小不同,为了发送此类事件,您可能需要复制 guint8 到一个数组 int 。但请注意,这不是一个快速的操作,也不是一个大事件的序列化,所以不要期望有一个好的表现。

    此外,kurento事件的预期(您应该检查 BufferReceived )当你声明一个数组是 std::vector<int> ,因此在任何情况下都需要创建数组并复制内容。