Skip to content

Releases: signalwire/signalwire-js

@signalwire/js v3.2.0

09 Sep 18:16
e196102
Compare
Choose a tag to compare

Highlights

We are excited to announce the release of @signalwire/js v3.2.0.

With this new version of the JS SDK we have introduced the ability to record your rooms! As usual, this is a matter of a few lines of codes. For example:

const rec = await room.startRecording()
await rec.stop()
await room.getRecordings()
/*
{
  "recordings": [
    {
      "id": "94ec917c-ff9c-4d57-9111-7d93a8f6e3e8",
      "state": "completed",
      "duration": 4.66,
      "started_at": 1630681129.936,
      "ended_at": 1630681133.7655
    }
  ]
}
*/

After a room has been recorded, you can download the mp4 file from SignalWire's servers to obtain your video recording. You can do that by using the REST API:

curl --request GET \
     --url https://<yourspace>.signalwire.com/api/video/room_recordings/94ec917c-ff9c-4d57-9111-7d93a8f6e3e8 \
     --header 'Accept: application/json' \
     --header 'Authorization: Basic <your API token>'

The above GET request will return a recording object with a uri field that you can follow to obtain the mp4 file.

New Features

Improvements

  • #257 7380582 We have improved the TypeScript documentation for the WebRTC methods. Enjoy the rich method descriptions and examples from IntelliSense, without leaving your editor:

intellisense

Deprecations

  • #273 249facf For consistency, we have renamed the old events member.talking.start and member.talking.stop into, respectively, member.talking.started and member.talking.ended. The old event names have been deprecated and will be removed in future releases.

Fixes

  • We have included minor bug fixes

For the detailed changelog, see CHANGELOG.md.

@signalwire/js v3.1.0

13 Aug 17:57
d0f396a
Compare
Choose a tag to compare

This is a minor release of the SignalWire JavaScript SDK.

Highlights

Allow a speaker to be set when creating a room object

You can now select which speaker (or, generically, output device) to use as soon as you connect to the room. You can do this by specifying the speakerId key in the parameters of SignalWire.Video.createRoomObject or SignalWire.Video.joinRoom. For example:

  const roomObj = await Video.joinRoom({
    token: '<YourJWT>',
    rootElementId: 'root',
    speakerId: '... your speaker id ...'
  })

Introduced functions for checking the media methods supported in the current environment

We provide two new functions, supportsGetUserMedia and supportsGetDisplayMedia, that you can use to check whether the corresponding media methods are available in the current environment.

Better audio by default in screen sharings

When you create a screen sharing object via createScreenShareObject, if you specify {audio: true} we will create for you an audio constraints object that will ensure superior audio quality.

New Features

  • #240 b5d2a72 - Allow speakerId to be set when creating a room object to set the audio output device before join.
  • #239 5c2eb71 - Exports methods to check if the environment supports getUserMedia or getDisplayMedia

Improved

  • #236 b967c89 - Apply audio and video constraints sent from the backend consuming the mediaParams event.

  • #237 6d36287 - Set parent memberId for screenShare and additionalDevice sessions. Add default audio constraints for screenShareObjects.

@signalwire/js v3.0.0

10 Aug 10:50
1e2b8a0
Compare
Choose a tag to compare

This release marks the first stable version of the JavaScript SDK v3!
With respect to the previous major release of the JavaScript SDK, version 3 allows you to manage an environment with multiple rooms and participants for building full-fledged video-conferencing applications and much more. Take a look at the Getting Started information on our developers website.

Please note that some of the features that were present in the old SDK are still missing, and will be included in the upcoming updates to version 3. For more information on the differences between the functionalities offered by the old and the new SDK, refer to our Getting Started guide.

If you have been an early user of version 3 by following our beta releases, here's what changed since the latest preliminary release (beta 6). For the complete changelog with respect to the previous major release, see CHANGELOG.md.

Highlights

New helper methods to create device watchers

Previously, if you wanted to create a device watcher for a single device, you had to manually specify the device category, as in:

h = await SignalWire.WebRTC.createDeviceWatcher({targets: ['microphone']})

You can still use createDeviceWatcher to listen to the events of one or more devices, but we have introduced the methods createCameraDeviceWatcher, createMicrophoneDeviceWatcher and createSpeakerDeviceWatcher which can help make your code cleaner. The previous example would become:

h = await SignalWire.WebRTC.createMicrophoneDeviceWatcher()

Fixed behavior of setMicrophoneVolume() and setSpeakerVolume()

If you were using our beta SDK, you may have run into a bug in which setMicrophoneVolume() actually controlled the volume of the speaker, and vice versa. We have fixed that, so you may need to update your code accordingly.

New Features

  • #224 447460c: Export createCameraDeviceWatcher, createMicrophoneDeviceWatcher and createSpeakerDeviceWatcher helper methods

Bug Fixes

  • d017a99: Update the filtering logic for the device list where Firefox could return a device with deviceId but with empty label.
  • 2bdd043: Fix setMicrophoneVolume() behavior on Room, RoomDevice and RoomScreenShare objects. Fix setSpeakerVolume() behavior on Room object.