v0.13.1 - Simple track APIs
To take full advantage of new features in this version, you'll need server v0.13.5 or later
Track Sources & Simpler APIs
This release added helper APIs to manipulate common track sources: Camera, Microphone, and ScreenShare. To enable/disable a track, we now offer explicit APIs to access them.
On LocalParticipant
, we are introducing three new APIs
setCameraEnabled(bool)
setMicrophoneEnabled(bool)
setScreenShareEnabled(bool)
When using these APIs, user media will be automatically acquired for you. You can still set the default track options on the room by either passing them in during connect()
, or changing them later on the room by setting room.defaultTrackOptions
Similarly, it's quite a bit simpler to check if a RemoteParticipant is publishing a particular track. on Participant
isCameraEnabled
isMicrophoneEnabled
isScreenShareEnabled
A track is considered enabled when it's published and not muted.
Device Management APIs
We are also making it easier to list and select input and output devices available to the browser via a set of simple APIs. To list valid devices available, use Room.getLocalDevices(MediaDeviceKind)
, where MediaDeviceKind is 'audioinput' | 'audiooutput' | 'videoinput'
You can also listen to changes to devices with RoomEvent.MediaDevicesChanged
You can also switch the active device that's used in the room using room.switchActiveDevice(MediaDeviceKind, deviceId)
. When setting the audio output device, all <audio>
elements that are attached to any tracks in this room will be set to output to that device (by using setSinkId
, which isn't supported on all browsers).
Transceiver Re-use
We are now re-using WebRTC Transceivers when receiving tracks. This helps to keep the offer/answer SDP messages to as small as possible, and scales much better to larger conferences where participants are entering/leaving or if selective subscriptions are used. #51
Opus DTX
Opus DTX is now enabled by default. It helps to conserve bandwidth especially when audio tracks are silent. To disable DTX, pass in dtx: false
in TrackPublishOptions
#49
Room Metadata support
Thanks to @FeepsDev @lukasIO, we now support room level metadata. RoomEvent.RoomMetadataChanged
is fired for all participants when there are changes to the room metadata. #47
Other changes
- Track mute/unmute now returns a promise #55
- Improved sample app