我正在用Java编写基本的VoIP程序。在我的发送线程中,我有代码记录到一个字节数组,仅将数据打包成一个数据报包,发送,接收然后播放。它工作完美,听起来很棒。现在,我正在尝试在发送数据包之前向数据添加2字节的标头。我正在这样做:
ByteBuffer unwrapEncrypt = ByteBuffer.allocate(block.length+2);
short authKey = 10;
unwrapEncrypt.putShort(authKey);
在将我的512字节音频块放入ByteBuffer并发送之前。在接收端:
ByteBuffer decryptedBlock = null;
short authKey = 10;
if(unwrapDecrypt.getShort(0) == authKey) {
unwrapDecrypt.position(2);
unwrapDecrypt.limit(514);
decryptedBlock = unwrapDecrypt.slice();
}
由于某种原因,这使我的音频变成了绝对的嘶嘶声巨响,几乎无法辨认。有没有更好的方法来添加然后剥离标题?我愿意尽一切努力使这项工作成功。