2.0.0-beta16 (December 10, 2019)
New Features
-
This release supports all the features of the Track Priority and Bandwidth Profile APIs.
-
You can now specify the mode to control Track switch off behavior by specifying a
propertytrackSwitchOffMode
in BandwidthProfileOptions.
trackSwitchOffMode
can be set to one ofdetected
- In this mode, RemoteVideoTracks are switched off only when network congestion
is detected.predicted
- In this mode, RemoteVideoTracks are pro-actively switched off when network
congestion is predicted by the bandwidth estimation mechanism. This mode
is used by default if not specified.disabled
- In this mode, RemoteVideoTracks will not be switched off. Instead tracks
will be adjusted to lower quality. (JSDK-2549)
const { connect } = require('twilio-video'); const room = await connect(token, { bandwidthProfile: { video: { dominantSpeakerPriority: 'high', maxTracks: 2, mode: 'collaboration' trackSwitchOffMode: 'detected' // possible values: "predicted", "detected" or "disabled". } } });
-
You can now change the priority of an already published LocalTrack using a new method
setPriority
on the corresponding LocalTrackPublication. (JSDK-2442)const localTrackPublication = await room.localParticipant.publishTrack(localTrack, { priority: 'high' // LocalTrack's publish priority - "low", "standard" or "high" }); // After a while, change the priority to "low". localTrackPublication.setPriority(`low`);
This will update
publishPriority
on all corresponding RemoteTrackPublications and
emit a new event "publishPriorityChanged" to notify the user:remoteTrackPublication.on('publishPriorityChanged', priority => { console.log(`The publisher has changed the priority this Track to "${priority}"`); assert.equal(remoteTrackPublication.publishPriority, priority); });
-
In a Group Room, You can now override for yourself the priority of a RemoteTrack set by the publisher
by using a new methodsetPriority
. (JSDK-2347)remoteTrack.setPriority('high');
-
If you want to revert back to the priority set by the publisher, you can do so as shown below:
remoteTrack.setPriority(null);
Bug Fixes
-
Worked around an issue in chrome where it would sometimes stop sending updates on screen-share track if
maxVideoBitrate
was set for the track.
You can limit bitrates on outgoing tracks using Localparticipant.setParameters api. With this workaround, any bitrates set will not be applied to screen share track on chrome. (JSDK-2557) -
Fixed a race condition, that would sometimes cause a track to not get published if multiple tracks were added in quick succession (JSDK-2573)
-
Fixed a bug where
publishPriorityChanged
,trackDisabled
andtrackEnabled
events were getting fired for initial track state (JSDK-2603) -
Fixed an issue where loading twilio-video.js in firefox with
media.peerconnection.enabled
set to false inabout:config
caused page errors. (JSDK-2591)