|
@@ -2067,7 +2067,7 @@ RTCUtils.prototype.createStream = function(stream, isVideo) {
|
2067
|
2067
|
module.exports = RTCUtils;
|
2068
|
2068
|
|
2069
|
2069
|
},{"../../service/RTC/Resolutions":166,"../xmpp/SDPUtil":60,"./RTCBrowserType":10,"./adapter.screenshare":12}],12:[function(require,module,exports){
|
2070
|
|
-/*! adapterjs - custom version from - 2015-08-18 */
|
|
2070
|
+/*! adapterjs - custom version from - 2015-08-19 */
|
2071
|
2071
|
|
2072
|
2072
|
// Adapter's interface.
|
2073
|
2073
|
var AdapterJS = AdapterJS || {};
|
|
@@ -2423,13 +2423,12 @@ AdapterJS.renderNotificationBar = function (text, buttonText, buttonLink, openNe
|
2423
|
2423
|
AdapterJS.WebRTCPlugin.isPluginInstalled(
|
2424
|
2424
|
AdapterJS.WebRTCPlugin.pluginInfo.prefix,
|
2425
|
2425
|
AdapterJS.WebRTCPlugin.pluginInfo.plugName,
|
2426
|
|
- AdapterJS.WebRTCPlugin.defineWebRTCInterface,
|
2427
|
|
- function() {
|
|
2426
|
+ function() { // plugin now installed
|
2428
|
2427
|
clearInterval(pluginInstallInterval);
|
2429
|
2428
|
AdapterJS.WebRTCPlugin.defineWebRTCInterface();
|
2430
|
2429
|
},
|
2431
|
|
- function() {
|
2432
|
|
- //Does nothing because not used here
|
|
2430
|
+ function() {
|
|
2431
|
+ // still no plugin detected, nothing to do
|
2433
|
2432
|
});
|
2434
|
2433
|
} , 500);
|
2435
|
2434
|
});
|
|
@@ -2802,6 +2801,28 @@ if (navigator.mozGetUserMedia) {
|
2802
|
2801
|
return to;
|
2803
|
2802
|
};
|
2804
|
2803
|
|
|
2804
|
+ AdapterJS.maybeThroughWebRTCReady();
|
|
2805
|
+} else if (navigator.mediaDevices && navigator.userAgent.match(
|
|
2806
|
+ /Edge\/(\d+).(\d+)$/)) {
|
|
2807
|
+ webrtcDetectedBrowser = 'edge';
|
|
2808
|
+
|
|
2809
|
+ webrtcDetectedVersion =
|
|
2810
|
+ parseInt(navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)[2], 10);
|
|
2811
|
+
|
|
2812
|
+ // the minimum version still supported by adapter.
|
|
2813
|
+ webrtcMinimumVersion = 12;
|
|
2814
|
+
|
|
2815
|
+ getUserMedia = navigator.getUserMedia;
|
|
2816
|
+
|
|
2817
|
+ attachMediaStream = function(element, stream) {
|
|
2818
|
+ element.srcObject = stream;
|
|
2819
|
+ return element;
|
|
2820
|
+ };
|
|
2821
|
+ reattachMediaStream = function(to, from) {
|
|
2822
|
+ to.srcObject = from.srcObject;
|
|
2823
|
+ return to;
|
|
2824
|
+ };
|
|
2825
|
+
|
2805
|
2826
|
AdapterJS.maybeThroughWebRTCReady();
|
2806
|
2827
|
} else { // TRY TO USE PLUGIN
|
2807
|
2828
|
// IE 9 is not offering an implementation of console.log until you open a console
|
|
@@ -2954,9 +2975,10 @@ if (navigator.mozGetUserMedia) {
|
2954
|
2975
|
AdapterJS.WebRTCPlugin.defineWebRTCInterface = function () {
|
2955
|
2976
|
if (AdapterJS.WebRTCPlugin.pluginState ===
|
2956
|
2977
|
AdapterJS.WebRTCPlugin.PLUGIN_STATES.READY) {
|
2957
|
|
- console.error("WebRTC interface has been defined already");
|
|
2978
|
+ console.error("AdapterJS - WebRTC interface has already been defined");
|
2958
|
2979
|
return;
|
2959
|
2980
|
}
|
|
2981
|
+
|
2960
|
2982
|
AdapterJS.WebRTCPlugin.pluginState = AdapterJS.WebRTCPlugin.PLUGIN_STATES.INITIALIZING;
|
2961
|
2983
|
|
2962
|
2984
|
AdapterJS.isDefined = function (variable) {
|
|
@@ -3053,9 +3075,10 @@ if (navigator.mozGetUserMedia) {
|
3053
|
3075
|
}
|
3054
|
3076
|
|
3055
|
3077
|
var elementId = element.id.length === 0 ? Math.random().toString(36).slice(2) : element.id;
|
3056
|
|
- if (!element.isWebRTCPlugin || !element.isWebRTCPlugin()) {
|
|
3078
|
+ var nodeName = element.nodeName.toLowerCase();
|
|
3079
|
+ if (nodeName !== 'object') { // not a plugin <object> tag yet
|
3057
|
3080
|
var tag;
|
3058
|
|
- switch(element.nodeName.toLowerCase()) {
|
|
3081
|
+ switch(nodeName) {
|
3059
|
3082
|
case 'audio':
|
3060
|
3083
|
tag = AdapterJS.WebRTCPlugin.TAGS.AUDIO;
|
3061
|
3084
|
break;
|
|
@@ -3106,7 +3129,7 @@ if (navigator.mozGetUserMedia) {
|
3106
|
3129
|
frag.width = width;
|
3107
|
3130
|
frag.height = height;
|
3108
|
3131
|
element.parentNode.removeChild(element);
|
3109
|
|
- } else {
|
|
3132
|
+ } else { // already an <object> tag, just change the stream id
|
3110
|
3133
|
var children = element.children;
|
3111
|
3134
|
for (var i = 0; i !== children.length; ++i) {
|
3112
|
3135
|
if (children[i].name === 'streamId') {
|
|
@@ -3118,9 +3141,9 @@ if (navigator.mozGetUserMedia) {
|
3118
|
3141
|
}
|
3119
|
3142
|
var newElement = document.getElementById(elementId);
|
3120
|
3143
|
newElement.onplaying = (element.onplaying) ? element.onplaying : function (arg) {};
|
|
3144
|
+ newElement.onclick = (element.onclick) ? element.onclick : function (arg) {};
|
3121
|
3145
|
if (isIE) { // on IE the event needs to be plugged manually
|
3122
|
3146
|
newElement.attachEvent('onplaying', newElement.onplaying);
|
3123
|
|
- newElement.onclick = (element.onclick) ? element.onclick : function (arg) {};
|
3124
|
3147
|
newElement._TemOnClick = function (id) {
|
3125
|
3148
|
var arg = {
|
3126
|
3149
|
srcElement : document.getElementById(id)
|
|
@@ -8694,7 +8717,7 @@ function changeVideo(isVisible) {
|
8694
|
8717
|
if (isVisible) {
|
8695
|
8718
|
LargeVideo.VideoLayout.largeVideoUpdated(currentSmallVideo);
|
8696
|
8719
|
|
8697
|
|
- $('#largeVideoWrapper').fadeIn(300);
|
|
8720
|
+ $('#largeVideoWrapper').fadeTo(300, 1);
|
8698
|
8721
|
}
|
8699
|
8722
|
}
|
8700
|
8723
|
|
|
@@ -8829,7 +8852,7 @@ var LargeVideo = {
|
8829
|
8852
|
// If for any reason large video was hidden before calling fadeOut
|
8830
|
8853
|
// changeVideo will never be called, so we call show() in chain just
|
8831
|
8854
|
// to be sure
|
8832
|
|
- $('#largeVideoWrapper').show().fadeOut(300,
|
|
8855
|
+ $('#largeVideoWrapper').show().fadeTo(300, 0,
|
8833
|
8856
|
changeVideo.bind($('#largeVideo'), this.isLargeVideoVisible()));
|
8834
|
8857
|
} else {
|
8835
|
8858
|
if (currentSmallVideo) {
|
|
@@ -10213,6 +10236,16 @@ var VideoLayout = (function (my) {
|
10213
|
10236
|
localAudio.autoplay = true;
|
10214
|
10237
|
localAudio.volume = 0;
|
10215
|
10238
|
}
|
|
10239
|
+ // Now when Temasys plugin is converting also <audio> elements to
|
|
10240
|
+ // plugin's <object>s, in current layout it will capture click events
|
|
10241
|
+ // before it reaches the local video object. We hide it here in order
|
|
10242
|
+ // to prevent that.
|
|
10243
|
+ if (RTCBrowserType.isIExplorer()) {
|
|
10244
|
+ // The issue is not present on Safari. Also if we hide it in Safari
|
|
10245
|
+ // then the local audio track will have 'enabled' flag set to false
|
|
10246
|
+ // which will result in audio mute issues
|
|
10247
|
+ $('#localAudio').hide();
|
|
10248
|
+ }
|
10216
|
10249
|
};
|
10217
|
10250
|
|
10218
|
10251
|
my.changeLocalVideo = function(stream, isMuted) {
|