Пример #1
0
  private void setVisualization(WebSocketSession session, JsonObject jsonObject) {

    try {
      visualizeMouth = jsonObject.get("val").getAsInt();
      if (null != mouth) mouth.showMouths(visualizeMouth);

    } catch (Throwable t) {
      sendError(session, t.getMessage());
    }
  }
Пример #2
0
  private void start(final WebSocketSession session, JsonObject jsonMessage) {
    try {
      // Media Logic (Media Pipeline and Elements)
      UserSession user = new UserSession();
      MediaPipeline pipeline = kurento.createMediaPipeline();
      user.setMediaPipeline(pipeline);
      WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).build();
      user.setWebRtcEndpoint(webRtcEndpoint);
      users.put(session.getId(), user);

      webRtcEndpoint.addOnIceCandidateListener(
          new EventListener<OnIceCandidateEvent>() {

            @Override
            public void onEvent(OnIceCandidateEvent event) {
              JsonObject response = new JsonObject();
              response.addProperty("id", "iceCandidate");
              response.add("candidate", JsonUtils.toJsonObject(event.getCandidate()));
              try {
                synchronized (session) {
                  session.sendMessage(new TextMessage(response.toString()));
                }
              } catch (IOException e) {
                log.debug(e.getMessage());
              }
            }
          });

      mouth = new NuboMouthDetector.Builder(pipeline).build();

      webRtcEndpoint.connect(mouth);
      mouth.connect(webRtcEndpoint);

      // SDP negotiation (offer and answer)
      String sdpOffer = jsonMessage.get("sdpOffer").getAsString();
      String sdpAnswer = webRtcEndpoint.processOffer(sdpOffer);

      // Sending response back to client
      JsonObject response = new JsonObject();
      response.addProperty("id", "startResponse");
      response.addProperty("sdpAnswer", sdpAnswer);

      synchronized (session) {
        session.sendMessage(new TextMessage(response.toString()));
      }
      webRtcEndpoint.gatherCandidates();

    } catch (Throwable t) {
      sendError(session, t.getMessage());
    }
  }
Пример #3
0
  private void setWidthToProcess(WebSocketSession session, JsonObject jsonObject) {

    try {
      int width = jsonObject.get("val").getAsInt();

      if (null != mouth) {
        log.debug("Sending width...." + width);
        mouth.widthToProcess(width);
      }

    } catch (Throwable t) {
      sendError(session, t.getMessage());
    }
  }
Пример #4
0
  private void setScaleFactor(WebSocketSession session, JsonObject jsonObject) {

    try {
      int scale = jsonObject.get("val").getAsInt();

      if (null != mouth) {
        log.debug("Sending setscaleFactor...." + scale);
        mouth.multiScaleFactor(scale);
      }

    } catch (Throwable t) {
      sendError(session, t.getMessage());
    }
  }
Пример #5
0
  private void setProcessNumberFrames(WebSocketSession session, JsonObject jsonObject) {

    try {
      int num_img = jsonObject.get("val").getAsInt();

      if (null != mouth) {
        log.debug("Sending process num frames...." + num_img);

        mouth.processXevery4Frames(num_img);
      }

    } catch (Throwable t) {
      sendError(session, t.getMessage());
    }
  }