Skip to content

Releases: twilio/twilio-video.js

1.2.1

14 Sep 23:59
Compare
Choose a tag to compare

1.2.1 (August 14, 2017)

In addition to the following bug fixes, this release introduces experimental
support for Safari 11 and newer. Support for Safari is "experimental" because,
at the time of writing, Safari does not support VP8. This means you may
experience codec issues in Group Rooms. You may also experience codec issues in
Peer-to-Peer (P2P) Rooms containing Android- or iOS-based Participants who do
not support H.264. However, P2P Rooms with browser-based Participants should
work.

We are also experimenting with the ability to specify the set of codecs a Group
Room supports. This would allow you to create an H.264-only Group Room, for
example. Please email video-product@twilio.com
if you would like to try this out.

twilio-video.js will log these same caveats as a warning if you call connect
in Safari 11. You can disable this warning by setting the logLevel to "warn".

Bug Fixes

  • In Firefox, we were raising a peerIdentity TypeError in the console.
    (JSDK-1372)

1.2.0

14 Sep 23:59
Compare
Choose a tag to compare

1.2.0 (July 21, 2017)

New Features

  • Video Insights can be enabled or disabled by setting insights to true or
    false in the ConnectOptions. insights defaults to true. We recommend to
    leave Video Insights enabled in order to aid troubleshooting.

Bug Fixes

  • Added some missing documentation to ConnectOptions and
    CreateLocalTracksOptions. Both options objects accept audio and video
    properties which may be set to a boolean or
    MediaTrackConstraints.
    We added this to the documentation. (JSDK-1365)
  • Fixed a bug where twilio-video.js would continue polling for configuration
    data, despite being disconnected from a Room and despite the Access Token
    having expired. (JSDK-1407)

1.1.0

14 Sep 23:59
Compare
Choose a tag to compare

1.1.0 (July 12, 2017)

New Features

  • You can now call the LocalParticipant's removeTracks method with an
    optional second boolean argument stop to specify whether the removed
    LocalTacks should be stopped. If stop is not specified, then the removed
    LocalTracks will be stopped. This mirrors the behavior of the LocalParticicipant's
    removeTrack method.

    // Stops the removed LocalTracks
    localParticipant.removeTracks(tracks);
    localParticipant.removeTracks(tracks, true);
    // Does not stop the removed LocalTracks
    localParticipant.removeTracks(tracks, false);

Bug Fixes

  • twilio-video.js can now be used alongside adapter.js. twilio-video.js checks
    whether or not an RTCPeerConnection implementation supports the "track" event
    by checking for an ontrack property on the RTCPeerConnection. adapter.js
    sets this property; however it only dispatches "track" events if a function
    is assigned to the ontrack property, meaning that event handlers attached
    with addEventListener will never fire. We now work around this issue by
    assigning a function to ontrack.

1.0.0

14 Sep 23:59
Compare
Choose a tag to compare

1.0.0 (April 25, 2017)

1.0.0-beta7 has been promoted to 1.0.0!

This library uses Semantic Versioning: We've removed the
pre-release identifier, and we're proud to share the first generally available
release of twilio-video.js.

1.0.0-beta7

14 Sep 23:59
Compare
Choose a tag to compare
1.0.0-beta7 Pre-release
Pre-release

1.0.0-beta7 (April 21, 2017)

Bug Fixes

  • The first known issue in 1.0.0-beta6 stems from a behavior in Chrome: Chrome
    will treat an SSRC change for a MediaStreamTrack as adding and removing the
    MediaStreamTrack; this caused a problem in our SDK, as the first
    MediaStreamTrack would be raised to the user wrapped in a Track object, but
    would eventually become unusable due to the SSRC change. We workaround this
    behavior by "fixing" the SSRCs announced in an SDP between calls to
    createOffer. Firefox does not exhibit this behavior. (CSDK-1206)
  • Calling addTrack, removeTrack, or their plural variants in the same tick
    could lead to sending more messages than necessary; we landed an optimization
    to reduce these additional messages. (JSDK-1257)

1.0.0-beta6

14 Sep 23:59
Compare
Choose a tag to compare
1.0.0-beta6 Pre-release
Pre-release

1.0.0-beta6 (April 20, 2017)

New Features

  • You can now connect to a Room using an Array of MediaStreamTracks without
    constructing LocalAudioTracks or LocalVideoTracks. For example, if you
    already have a reference to a MediaStream, stream, you can call

    connect(token, { tracks: stream.getTracks() });
  • You can now call LocalParticipant's addTrack and removeTrack methods
    with a MediaStreamTrack. If successful, these methods return the LocalTrack
    added or removed; otherwise, they return null.

  • Added two new methods to LocalParticipant, addTracks and removeTracks, for
    adding and removing multiple LocalTracks at a time. These methods accept
    either an Array of LocalTracks or MediaStreamTracks, and return an Array of
    the LocalTracks added or removed. For example, if you already have a reference
    to a MediaStream, stream, you can call

    localParticipant.addTracks(stream.getTracks());
    
    localParticiapnt.removeTracks(stream.getTracks());

Bug Fixes

  • Fixed a bug where attempting to remove a LocalTrack from the LocalParticipant
    after disconnecting from a Room threw an Error (JSDK-1233)
  • Fixed a regression between 1.0.0-beta4 and 1.0.0-beta5 where
    automatically-acquired LocalTracks were not stopped after disconnecting from
    the Room
  • Fixed a bug that could lead to media- and Track-related failures that
    resulting from the way we handle out-of-order SDP offers and answers; now,
    all PeerConnections will wait until an initial round of negotiation is
    complete before applying or creating subsequent offers (JSDK-1176)
  • Fixed a bug where calling cancel on the CancelablePromise returned by
    connect could throw an Error
  • Fixed a bug in the LocalAudioTrack and LocalVideoTrack constructors: options
    should have been optional (JSDK-1251)
  • Fixed a bug where Room's getStats method could reject if outbound statistics
    were missing in Firefox
  • Fixed a bug where Room's getStats method could reject if called after
    disconnecting from a Room in Firefox
  • Fixed a bug in our message retry logic that caused us to retry messages after
    disconnecting from a Room

Known Issues

  • Despite the addition of addTracks, adding multiple LocalTracks in quick
    succession is likely to cause media failures, and so it is recommended to
    either

    • Stagger the addition or removal of LocalTracks, or
    • Use the enable and disable functionality in lieu of adding and removing
      LocalTracks.

    A solution has been identified and will be included in the next release.

  • There exists an interoperability issue between Firefox and other WebRTC
    implementations (including Chrome and Twilio's iOS and Android SDKs) that can
    cause media failures if Firefox does not share a LocalAudioTrack. If you are
    developing an application that will interoperate with Firefox, please ensure
    you always share a LocalAudioTrack until this issue is resolved. You can
    share a muted LocalAudioTrack by calling disable. For example,

    localAudioTrack.disable();

1.0.0-beta5

14 Sep 23:59
Compare
Choose a tag to compare
1.0.0-beta5 Pre-release
Pre-release

1.0.0-beta5 (March 20, 2017)

We are very close to releasing the 1.0.0 APIs. This release includes a number of
simplifications to the twilio-video APIs, namely

  • The Client class has been removed. Instead of constructing a Client using an
    Access Token and then calling connect on it, you can simply call connect
    and pass it an Access Token directly. For example,

    const { connect } = require('twilio-video');
    
    const room = await connect('your-token');

    Or, if using browser globals,

    const room = await Twilio.Video.connect('your-token');
  • The Media and LocalMedia classes have been removed. Although the Media and
    LocalMedia classes provided some convenience methods for automatically
    attaching and detaching Tracks from the DOM as they were added and removed,
    these APIs got in the way whenever you wanted to do something more interesting
    with the Tracks. Therefore, the audioTracks and videoTracks collections as
    well as the addTrack and removeTrack methods have been moved up to the
    Participant and LocalParticipant levels. You should update your code to use
    the Track-level attach and detach APIs exclusively. For example,

    function handleParticipant(participant) {
      participant.tracks.forEach(addTrack);
      participant.on('trackAdded', addTrack);
    }
    
    function addTrack(track) {
      const element = track.attach();
      document.body.appendChild(element);
    }
  • The getLocalMedia method has also been replaced with a new method,
    createLocalTracks. This method behaves like getLocalMedia did, except it
    returns an Array of LocalTracks.

  • The addMicrophone and addCamera methods from LocalMedia have been replaced
    with two new top-level methods, createLocalAudioTrack and
    createLocalVideoTrack.

Refer to the API docs for more information.

New Features

  • LocalTracks now indicate whether or not they have stopped with the isStopped
    property. They also emit a new event, "stopped". LocalParticipant re-emits
    this event as "trackStopped".
  • LocalAudioTracks and LocalVideoTracks can now be constructed directly from
    MediaStreamTracks.
  • Updated the Track-level attach APIs to allow attaching both an AudioTrack
    and a VideoTrack to the same HTMLMediaElement.

Bug Fixes

  • Fixed a bug where twilio-video.js, when used in Firefox, would not raise a
    "trackAdded" event on a remote Participant if they added, removed, and added
    back the same Track
  • Fixed a bug where round-trip times reported by getStats were accidentally
    multiplied by 1000
  • Fixed a bug where certain identities with non-ASCII characters could not be
    used (for example, multiple ":" characters were causing failures)
  • Fixed a bug where minified builds of twilio-video.js could not be used on web
    pages that did not specify a charset
  • Fixed an EventEmitter leak in StateMachine that was warning in the console

1.0.0-beta4

14 Sep 23:59
Compare
Choose a tag to compare
1.0.0-beta4 Pre-release
Pre-release

1.0.0-beta4 (January 25, 2017)

New Features

  • We've begun formalizing our error codes. They are divided up into Signaling
    (530xx), Room (531xx), Participant (532xx), Track (533xx), Media (534xx), and
    Configuration (535xx) subranges. Instances of TwilioError will now carry a
    numeric code belonging to one of these ranges.

Bug Fixes

  • The way that twilio-video.js's dependencies, including some of
    twilio-video.js's transitive dependencies, were declared caused problems with
    bundlers like Webpack. This resulted in issues trying to use twilio-video.js
    in certain configurations with Angular, Meteor, and React apps. This release
    updates those dependencies.

1.0.0-beta3

14 Sep 23:59
Compare
Choose a tag to compare
1.0.0-beta3 Pre-release
Pre-release

1.0.0-beta3 (December 8, 2016)

New Features

  • Improved logging for Client, Room, Participant, Media, and Track.
  • Added a Room-level isRecording property which indicates whether or not the
    Room is being recorded (if recording is not currently enabled for your
    account, this property will always be false)
  • Added Room-level "recordingStarted" and "recordingStopped" events which
    indicate when recording is started or stopped on the Room (if recording is not
    currently enabled for your account, these events will never fire)
  • Added the ability to pass MediaTrackConstraints to LocalMedia's addCamera
    and addMicrophone methods
  • Added a Room-level getStats method for returning Track-level media
    statistics

Bug Fixes

  • Worked around a Promise-subclassing issue in CancelablePromise that caused
    twilio-video.js to fail when used with Zone.js (and Angular)
  • Fixed a bug where, if a VideoTrack belonged to a MediaStream containing
    multiple VideoTracks, the attach method might render a different VideoTrack
    than intended

1.0.0-beta2

14 Sep 23:59
Compare
Choose a tag to compare
1.0.0-beta2 Pre-release
Pre-release

1.0.0-beta2 (October 14, 2016)

This release was created to remove a file that was accidentally uploaded to the
NPM registry. The file included credentials (API Keys) to a test Twilio account
and were revoked when discovered.