Skip to content

v0.13.1 - Simple track APIs

Compare
Choose a tag to compare
@davidzhao davidzhao released this 20 Oct 06:57
· 1054 commits to main since this release

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