Browse Source

Disable enableRenegotiationSupport per default to make the stuff mergeable.

pull/112/head
Simon Eisenmann 12 years ago
parent
commit
4903fec5cd
  1. 63
      static/js/mediastream/usermedia.js

63
static/js/mediastream/usermedia.js

@ -24,6 +24,10 @@ define(['jquery', 'underscore', 'audiocontext', 'webrtc.adapter'], function($, _
var context = AudioContext ? new AudioContext() : null; var context = AudioContext ? new AudioContext() : null;
var peerconnections = {}; var peerconnections = {};
// Disabled for now until browser support matures. If enabled this totally breaks
// Firefox and Chrome with Firefox interop.
var enableRenegotiationSupport = false;
var UserMedia = function(options) { var UserMedia = function(options) {
this.options = $.extend({}, options); this.options = $.extend({}, options);
@ -262,7 +266,12 @@ define(['jquery', 'underscore', 'audiocontext', 'webrtc.adapter'], function($, _
UserMedia.prototype.applyAudioMute = function(mute) { UserMedia.prototype.applyAudioMute = function(mute) {
this.audioMute = !!mute; var m = !!mute;
if (!enableRenegotiationSupport) {
// Disable streams only - does not require renegotiation but keeps mic
// active and the stream will transmit silence.
if (this.localStream) { if (this.localStream) {
@ -272,19 +281,35 @@ define(['jquery', 'underscore', 'audiocontext', 'webrtc.adapter'], function($, _
return; return;
} }
for (i = 0; i < audioTracks.length; i++) { for (var i = 0; i < audioTracks.length; i++) {
audioTracks[i].enabled = !mute; audioTracks[i].enabled = !mute;
} }
if (mute) { if (mute) {
console.log("Local audio muted.") console.log("Local audio muted by disabling audio tracks.");
} else { } else {
console.log("Local audio unmuted.") console.log("Local audio unmuted by enabling audio tracks.");
} }
} }
return mute; } else {
// Remove audio stream, by creating a new stream and doing renegotiation. This
// is the way to go to disable the mic when audio is muted.
if (this.localStream) {
if (this.audioMute !== m) {
this.audioMute = m;
this.doGetUserMediaWithConstraints();
}
} else {
this.audioMute = m;
}
}
return m;
}; };
@ -292,34 +317,46 @@ define(['jquery', 'underscore', 'audiocontext', 'webrtc.adapter'], function($, _
var m = !!mute; var m = !!mute;
if (this.localStream) { if (!enableRenegotiationSupport) {
/*var videoTracks = this.localStream.getVideoTracks(); // Disable streams only - does not require renegotiation but keeps camera
// active and the stream will transmit black.
if (this.localStream) {
var videoTracks = this.localStream.getVideoTracks();
if (videoTracks.length === 0) { if (videoTracks.length === 0) {
//console.log('No local video available.'); //console.log('No local video available.');
return; return;
} }
for (i = 0; i < videoTracks.length; i++) { for (var i = 0; i < videoTracks.length; i++) {
videoTracks[i].enabled = !mute; videoTracks[i].enabled = !mute;
} }
if (mute) { if (mute) {
console.log("Local video muted.") console.log("Local video muted by disabling video tracks.");
} else { } else {
console.log("Local video unmuted.") console.log("Local video unmuted by enabling video tracks.");
}*/ }
}
} else {
// Removevideo stream, by creating a new stream and doing renegotiation. This
// is the way to go to disable the camera when video is muted.
if (this.localStream) {
if (this.videoMute !== m) { if (this.videoMute !== m) {
this.videoMute = m; this.videoMute = m;
this.doGetUserMediaWithConstraints(); this.doGetUserMediaWithConstraints();
} }
} else { } else {
this.videoMute = m; this.videoMute = m;
} }
return mute; }
return m;
}; };

Loading…
Cancel
Save