如何使用双簧管(Android低延迟音频的C+;+;库)从DatagramPacket接收字节[]缓冲区?

如何使用双簧管(Android低延迟音频的C+;+;库)从DatagramPacket接收字节[]缓冲区?,android,c++,java-native-interface,datagram,oboe,Android,C++,Java Native Interface,Datagram,Oboe,我想在两台Android设备之间通过WiFi进行音频直播 为了减少音频延迟,应用OBOE C++库似乎是一个正确的方向。 我目前的结构是使用DatagramPacket来发送和接收音频数据。保存传入数据报的缓冲区的数据类型为字节[]。根据我的研究,我需要通过JNI(Java本机接口)从byte[]缓冲区传递数据,然后将数据读入非阻塞队列?(例:) 如果我理解正确,C++中没有字节[]数据类型,所以我必须将字节[](JNI TurnRayin JNI)转换为数据类型(EX:It16YT)/< 但是

我想在两台Android设备之间通过WiFi进行音频直播

<>为了减少音频延迟,应用OBOE C++库似乎是一个正确的方向。 我目前的结构是使用DatagramPacket来发送和接收音频数据。保存传入数据报的缓冲区的数据类型为字节[]。根据我的研究,我需要通过JNI(Java本机接口)从byte[]缓冲区传递数据,然后将数据读入非阻塞队列?(例:)

如果我理解正确,C++中没有字节[]数据类型,所以我必须将字节[](JNI TurnRayin JNI)转换为数据类型(EX:It16YT)/< 但是,我不太清楚如何实现这种转换?甚至我也走错了方向

如有任何建议或示例代码,将不胜感激


多谢各位

我建议您考虑使用直接
字节缓冲池。这些对象封装了本地内存的一个块,可以直接从C++访问。
当您从网络接收到数据包时,从池中取出一个免费的ByteBuffer,将数据包内容复制到其中,并将缓冲区标记为以某种方式获取。(通过将它添加到<代码>获取队列),然后,将指针+大小添加到C++可以访问的队列。
在双簧管
onaudiorady
回调中,您只需将元素从队列中取出,并将其内容复制到双簧管的数据缓冲区。告诉Java世界消耗了多少元素,这样它就可以将缓冲区回收回空闲池