我想通过使用反向字节顺序来制作一个自定义的 sipdroid 客户端。我认为这使得其他 Voip 客户端无法解码这些数据。
所以我阅读了 SipDroid 的代码。我发现 RTP 数据是这样的: 1. AudioRecord.read(originalPCM) 2. encode(originalPCM, encodedData) 3. rtp_socket.send(rtp_packet) //encodeData 是 rtp_packet 的数据部分
而另一边是: 1. rtp_receive(rtp_packet) 2. decode(encodeData, PCMData) //encodeData是rtp_packet的数据部分 3. AudioTrack.write(PCMData)
所以我修改了 SipdroidSocket 类。在发送方法中,我在开头添加了以下代码。
byte[] b = pack.getData();
reverse(b);
pack.setData(b);
并在接收方法的末尾添加以下代码。
byte[] b = pack.getData();
reverse(b);
pack.setData(b);
我想这样,两个客户端就可以正常工作了。但它失败了。而且我不知道原因。请帮我找出原因。谢谢。