You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/09/29 11:20:26 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1649] audio-only mode is implemented

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 4c0ff32  [OPENMEETINGS-1649] audio-only mode is implemented
4c0ff32 is described below

commit 4c0ff32382c8b52e097632d871deb1ce602da198
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Sep 29 18:20:10 2018 +0700

    [OPENMEETINGS-1649] audio-only mode is implemented
---
 .../java/org/apache/openmeetings/core/remote/KStream.java     | 11 +++++++++--
 .../org/apache/openmeetings/core/remote/KurentoHandler.java   |  4 ++++
 .../java/org/apache/openmeetings/web/room/raw-settings.js     |  3 ---
 .../main/java/org/apache/openmeetings/web/room/raw-video.js   | 10 ++++++++--
 .../src/main/webapp/WEB-INF/classes/applicationContext.xml    |  2 +-
 openmeetings-web/src/main/webapp/css/raw-room.css             |  4 ++++
 6 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
index d4e28ed..f6210ca 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
@@ -28,6 +28,7 @@ import java.util.concurrent.ConcurrentMap;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
+import org.apache.openmeetings.db.entity.basic.Client.Activity;
 import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.kurento.client.Continuation;
@@ -37,6 +38,7 @@ import org.kurento.client.IceCandidateFoundEvent;
 import org.kurento.client.MediaFlowOutStateChangeEvent;
 import org.kurento.client.MediaFlowState;
 import org.kurento.client.MediaPipeline;
+import org.kurento.client.MediaType;
 import org.kurento.client.WebRtcEndpoint;
 import org.kurento.jsonrpc.JsonUtils;
 import org.slf4j.Logger;
@@ -138,8 +140,13 @@ public class KStream implements IKStream {
 		}
 
 		log.debug("PARTICIPANT {}: obtained endpoint for {}", uid, sender.getUid());
-		sender.outgoingMedia.connect(incoming);
-
+		Client c = h.getBySid(sender.getSid());
+		if (c.hasActivity(Activity.broadcastA)) {
+			sender.outgoingMedia.connect(incoming, MediaType.AUDIO);
+		}
+		if (c.hasActivity(Activity.broadcastV)) {
+			sender.outgoingMedia.connect(incoming, MediaType.VIDEO);
+		}
 		return incoming;
 	}
 
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
index bccb63d..928700f 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
@@ -323,6 +323,10 @@ public class KurentoHandler {
 			);
 	}
 
+	Client getBySid(String sid) {
+		return cm.getBySid(sid);
+	}
+
 	public void sendClient(String sid, JSONObject msg) {
 		WebSocketHelper.sendClient(cm.getBySid(sid), msg);
 	}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
index 1db8927..b406f9d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-settings.js
@@ -147,21 +147,18 @@ var VideoSettings = (function() {
 			appendTo: '.cam-row'
 			, change: function(event, ui) {
 				_readValues();
-				swf.camChanged(s.video.cam);
 			}
 		});
 		mic = vs.find('select.mic').iconselectmenu({
 			appendTo: '.mic-row'
 			, change: function(event, ui) {
 				_readValues();
-				swf.micChanged(s.video.mic);
 			}
 		});
 		res = vs.find('select.cam-resolution').iconselectmenu({
 			appendTo: '.res-row'
 			, change: function(event, ui) {
 				_readValues();
-				swf.resChanged(s.video.width, s.video.height);
 			}
 		});
 		vidScroll = vs.find('.vid-block .video-conainer');
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
index 9beb8d8..c23a626 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
@@ -246,10 +246,16 @@ var Video = (function() {
 		o.type = c.type;
 		delete o.keycode;
 
-		video = $('<video>').attr('id', 'vid' + _id)
-			.attr('poster', 'profile/' + o.userId + '?anti=' + new Date().time) //TODO add normal URL
+		const hasVideo = VideoUtil.hasVideo(c)
+			, imgUrl = 'profile/' + o.userId + '?anti=' + new Date().getTime();  //TODO add normal URL ????
+		video = $(hasVideo ? '<video>' : '<audio>').attr('id', 'vid' + _id)
 			.width(o.width).height(o.height)
 			.prop('autoplay', true).prop('controls', false);
+		if (hasVideo) {
+			video.attr('poster', imgUrl);
+		} else {
+			vc.addClass('audio-only').css('background-image', 'url(' + imgUrl + ')');
+		}
 
 		vc.append(video);
 		/* TODO
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index 5ecac77..23ba20d 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -140,5 +140,5 @@
 
 	<!-- Kurento -->
 	<bean id="kurentoHandler" class="org.apache.openmeetings.core.remote.KurentoHandler" init-method="init" destroy-method="destroy"
-			p:kurentoWsUrl="ws://192.168.15.177:8888/kurento" p:checkTimeout="200"/>
+			p:kurentoWsUrl="ws://127.0.0.1:8888/kurento" p:checkTimeout="200"/>
 </beans>
diff --git a/openmeetings-web/src/main/webapp/css/raw-room.css b/openmeetings-web/src/main/webapp/css/raw-room.css
index bf72e99..c7fd6e0 100644
--- a/openmeetings-web/src/main/webapp/css/raw-room.css
+++ b/openmeetings-web/src/main/webapp/css/raw-room.css
@@ -420,6 +420,10 @@ ul.settings-menu {
 	min-height: 30px;
 	overflow: hidden;
 }
+.room.box .user-video .video.audio-only {
+	background-repeat: no-repeat;
+	background-size: 100% 100%;
+}
 .pod-area {
 	display: inline-grid;
 }