我第一次尝试使用WebRTC数据通道。我可以使用WebRTC javascript代码发送文本,并可以从我的WebRTC安卓代码中捕获该事件。
我正在遵循程序:
From JavaScript client :
function sendMsg(msg){
if(dataChannel.readyState=="open"){
dataChannel.send(msg); //dataChannel = my datachannel object
}
else{
console.error("data channel no ready");
}
}
From WebRTC android client:
public void onMessage(final Buffer arg0) {
byte[] bytearr = new byte[arg0.data.remaining()];
//Case 1:
Log.e("MSG_GOT",arg0.data.get(bytearr).toString());
//Case 2:
Log.e("MSG_GOT " + arg0.data.toString());
}
案例1: 我得到一些不可读的数据,我假设是编码的。 对于案例2: 我得到一个对象java.nio.ReadWriteDirectByteBuffer,status:capacity = 6 position = 6 limit = 6。 我发送abcdef作为文本。
如何将其解码为可读文本?或者是否有WebRTC android api提供的任何功能来解码它?
答案 0 :(得分:0)
我正在使用以下函数,当我发送字符串有效负载时,它会起作用。
public void onMessage(DataChannel.Buffer buffer) {
ByteBuffer data = buffer.data;
byte[] bytes = new byte[data.remaining()];
data.get(bytes);
final String message = new String(bytes);
// ...
}
我记得这是我现在找不到的类似问题/答案。