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