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()); } }
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()); } }
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()); } }
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()); } }
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()); } }