Releases: signalwire/signalwire-js
@signalwire/js v3.2.0
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
- #261
9dd7dbb
Room objects now exposes the methods startRecording and getRecordings, which you can use for controlling recordings of the current room session. - Room objects now emit events associated with recordings. These are
recording.started
,recording.updated
, andrecording.ended
.
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:
Deprecations
- #273
249facf
For consistency, we have renamed the old eventsmember.talking.start
andmember.talking.stop
into, respectively,member.talking.started
andmember.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
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
- AllowspeakerId
to be set when creating a room object to set the audio output device before join.
Improved
@signalwire/js v3.0.0
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
: ExportcreateCameraDeviceWatcher
,createMicrophoneDeviceWatcher
andcreateSpeakerDeviceWatcher
helper methods