wdy 发表于 2016-10-21 14:12:30

OnAnyChatTransBuffer收不到透明通道数据事件的响应


//发送结束会诊的透传消息
private void sendCloseCommand() {
    byte[] endTokenBytes = null;
    try {
      endTokenBytes = "close".getBytes("utf-8");
      mAnychatSDK.TransBuffer(-1, endTokenBytes, endTokenBytes.length);
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
}
// 收到透明通道数据事件
@Override
public void OnAnyChatTransBuffer(int dwUserid, byte[] lpBuf, int dwLen) {
    Log.d("OnAnyChatTransBuffer", "OnAnyChatTransBuffer");
    try {
      String str = new String(lpBuf, 0, dwLen, "utf-8");
      if ("close".equals(str)) {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setCancelable(false);
            builder.setTitle(R.string.title_dlg_finish_consu).setMessage(R.string.text_dlg_finish_consu)
                  .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                           finish();
                        }
                  }).show();
      }

    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
}发送是可以的,例如别人关闭了视频,我收不到这个响应,mAnychatSDK.SetTransDataEvent(this);也写了

佰锐科技-刘洋 发表于 2016-10-21 14:21:43

“利用该通道,可以向当前房间内的任何用户传输上层应用自定义的数据。”别人关闭视频以后离开房间了吗?

佰锐科技-邵光清 发表于 2016-10-22 10:54:03

本帖最后由 佰锐科技-邵光清 于 2016-10-22 10:58 编辑

您好,mAnychatSDK.TransBuffer(-1, endTokenBytes, endTokenBytes.length);-1是表示给房间内所有人发送透明通道信息,如果别人关闭了视频,已经离开了房间的话,他是收不到信息的;如果别人在房间外需要收到透明通道消息,那么TransBuffer需要传对方的id;
页: [1]
查看完整版本: OnAnyChatTransBuffer收不到透明通道数据事件的响应