Fixed problems with paused consumers

master
Håvar Aambø Fosstveit 2018-10-26 20:18:55 +02:00
parent e9e6e7f60d
commit b5f50fd580
2 changed files with 16 additions and 9 deletions

View File

@ -31,6 +31,18 @@ export default class LastN extends EventEmitter
this._lastNUpdated();
}
peerInLastN(peerName)
{
if (this._started)
{
return this._currentLastN.indexOf(peerName) !== -1;
}
else
{
return false;
}
}
_handleRoom()
{
this._room.on('newpeer', (peer) =>

View File

@ -353,9 +353,7 @@ export default class RoomClient
{
for (const consumer of peer.consumers)
{
if (consumer.appData.source !== 'webcam' ||
!consumer.supported ||
!consumer.locallyPaused)
if (consumer.kind !== 'video' || !consumer.supported)
continue;
await consumer.resume();
@ -365,12 +363,10 @@ export default class RoomClient
{
for (const consumer of peer.consumers)
{
if (consumer.appData.source !== 'webcam' ||
!consumer.supported ||
consumer.locallyPaused)
if (consumer.kind !== 'video')
continue;
await consumer.pause();
await consumer.pause('not-speaker');
}
}
}
@ -1835,8 +1831,7 @@ export default class RoomClient
// Receive the consumer (if we can).
if (consumer.supported)
{
if (consumer.kind === 'video' &&
Object.keys(this._room.peers).length > this._lastNSpeakers)
if (consumer.kind === 'video' && !this._lastN.peerInLastN(consumer.peer.name))
{ // Start paused
logger.debug(
'consumer paused by default');