Fix addVideo() issue due to adapter.js

master
Iñaki Baz Castillo 2017-06-07 11:58:59 +02:00
parent 267ebb320a
commit ae24aa4b09
2 changed files with 13 additions and 11 deletions

View File

@ -132,10 +132,8 @@ export default class Client extends events.EventEmitter
return Promise.reject(new Error('no video track'));
}
stream.removeTrack(videoTrack);
videoTrack.stop();
// NOTE: For Firefox (modern WenRTC API).
if (this._peerconnection.removeTrack)
{
let sender;
@ -148,6 +146,10 @@ export default class Client extends events.EventEmitter
this._peerconnection.removeTrack(sender);
}
else
{
stream.removeTrack(videoTrack);
}
if (!dontNegotiate)
{
@ -185,11 +187,14 @@ export default class Client extends events.EventEmitter
if (stream)
{
// Fucking hack for adapter.js in Chrome.
if (this._peerconnection.removeStream)
this._peerconnection.removeStream(stream);
stream.addTrack(newVideoTrack);
// NOTE: For Firefox (modern WenRTC API).
if (this._peerconnection.addTrack)
this._peerconnection.addTrack(newVideoTrack, this._localStream);
this._peerconnection.addTrack(newVideoTrack, stream);
}
else
{

View File

@ -14,24 +14,21 @@ import edgeRTCPeerConnection from './edge/RTCPeerConnection';
import edgeRTCSessionDescription from './edge/RTCSessionDescription';
import App from './components/App';
// TODO: TMP
global.BROWSER = browser;
const REGEXP_FRAGMENT_ROOM_ID = new RegExp('^#room-id=([0-9a-zA-Z_\-]+)$');
const logger = new Logger();
logger.warn('detected browser [name:"%s", version:%s]', browser.name, browser.version);
injectTapEventPlugin();
logger.debug('detected browser [name:"%s", version:%s]', browser.name, browser.version);
if (browser.msedge)
{
logger.warn('EDGE detected, overriding WebRTC global classes');
logger.debug('EDGE detected, overriding WebRTC global classes');
window.RTCPeerConnection = edgeRTCPeerConnection;
window.RTCSessionDescription = edgeRTCSessionDescription;
}
injectTapEventPlugin();
domready(() =>
{
logger.debug('DOM ready');