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 2020/04/04 12:04:20 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2195] room
enter with mic-only should work better
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 ec83d0e [OPENMEETINGS-2195] room enter with mic-only should work better
ec83d0e is described below
commit ec83d0efd339ad17707c4020d39d5490d261445a
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Apr 4 19:04:09 2020 +0700
[OPENMEETINGS-2195] room enter with mic-only should work better
---
.../openmeetings/core/remote/StreamProcessor.java | 8 --------
.../apache/openmeetings/web/room/raw-video-util.js | 12 +++++++++--
.../org/apache/openmeetings/web/room/raw-video.js | 24 ++++++++++++++++++----
.../openmeetings/web/room/sidebar/RoomSidebar.java | 9 +++++++-
4 files changed, 38 insertions(+), 15 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index 2fcd157..40ab564 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -211,14 +211,6 @@ public class StreamProcessor implements IStreamProcessor {
public void toggleActivity(Client c, Activity a) {
log.info("PARTICIPANT {}: trying to toggle activity {}", c, a);
- if (!activityAllowed(c, a, c.getRoom())) {
- if (a == Activity.AUDIO || a == Activity.AUDIO_VIDEO) {
- c.allow(Room.Right.AUDIO);
- }
- if (!c.getRoom().isAudioOnly() && (a == Activity.VIDEO || a == Activity.AUDIO_VIDEO)) {
- c.allow(Room.Right.VIDEO);
- }
- }
if (activityAllowed(c, a, c.getRoom())) {
boolean wasBroadcasting = isBroadcasting(c);
if (a == Activity.AUDIO && !c.isMicEnabled()) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
index 12b8939..f500fa9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-util.js
@@ -189,7 +189,11 @@ var VideoUtil = (function() {
function _cleanStream(stream) {
if (!!stream) {
stream.getTracks().forEach(function(track) {
- track.stop();
+ try {
+ track.stop();
+ } catch(e) {
+ //no-op
+ }
});
}
}
@@ -206,7 +210,11 @@ var VideoUtil = (function() {
} catch(e) {
OmUtil.log('Failed to clean peer' + e);
}
- peer.dispose();
+ try {
+ peer.dispose();
+ } catch(e) {
+ //no-op
+ }
peer = null;
}
}
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 8d6b6a6..0a04646 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
@@ -153,6 +153,9 @@ var Video = (function() {
VideoUtil.addIceServers(options, msg)
, function (error) {
if (error) {
+ if (true === this.cleaned) {
+ return;
+ }
return OmUtil.error(error);
}
if (data.analyser) {
@@ -161,6 +164,9 @@ var Video = (function() {
}
this.generateOffer(function(error, offerSdp) {
if (error) {
+ if (true === this.cleaned) {
+ return;
+ }
return OmUtil.error('Sender sdp offer error ' + error);
}
OmUtil.log('Invoking Sender SDP offer callback function');
@@ -196,11 +202,17 @@ var Video = (function() {
data.rtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(
options
, function(error) {
- if (!this.cleaned && error) {
+ if (error) {
+ if (true === this.cleaned) {
+ return;
+ }
return OmUtil.error(error);
}
this.generateOffer(function(error, offerSdp) {
- if (!this.cleaned && error) {
+ if (error) {
+ if (true === this.cleaned) {
+ return;
+ }
return OmUtil.error('Receiver sdp offer error ' + error);
}
OmUtil.log('Invoking Receiver SDP offer callback function');
@@ -311,7 +323,9 @@ var Video = (function() {
}
function _init(msg) {
sd = msg.stream;
- vol = Volume();
+ if (!vol) {
+ vol = Volume();
+ }
iceServers = msg.iceServers;
sd.activities = sd.activities.sort();
size = {width: sd.width, height: sd.height};
@@ -374,7 +388,9 @@ var Video = (function() {
}
const same = prevA.length === sd.activities.length && prevA.every(function(value, index) { return value === sd.activities[index]})
if (sd.self && !same) {
- _refresh();
+ _cleanup();
+ v.remove();
+ _init({stream: sd, iceServers: iceServers});
}
}
function __createVideo(data) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 6fce8f2..f328010 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.web.room.sidebar;
+import static org.apache.openmeetings.core.remote.KurentoHandler.activityAllowed;
import static org.apache.openmeetings.web.app.Application.kickUser;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
@@ -87,7 +88,13 @@ public class RoomSidebar extends Panel {
if (!avInited) {
avInited = true;
if (Room.Type.CONFERENCE == room.getRoom().getType()) {
- streamProcessor.toggleActivity(c, room.getRoom().isAudioOnly()
+ if (!activityAllowed(c, Client.Activity.AUDIO, c.getRoom())) {
+ c.allow(Room.Right.AUDIO);
+ }
+ if (!c.getRoom().isAudioOnly() && !activityAllowed(c, Client.Activity.VIDEO, c.getRoom())) {
+ c.allow(Room.Right.VIDEO);
+ }
+ streamProcessor.toggleActivity(c, c.getRoom().isAudioOnly()
? Client.Activity.AUDIO
: Client.Activity.AUDIO_VIDEO);
}