Features
- A new
updateLiveStreaming()
method exists to let you update on the fly parameters of a live stream you've previously started withstartLiveStreaming()
. So far the only parameter you can update islayout
. - A new
'active-participant'
layout preset has been added for live streaming:startLiveStreaming({ rtmpUrl: <url>, layout: { preset: 'active-participant' } })
. - You can now specify
'user'
as a value when invokingsetDailyLang()
or as alang
property when invokingjoin()
,preAuth()
,startCamera()
, or factory methods likecreateFrame()
.'user'
instructs Daily to use the user's preferred language as specified by the browser. - A new method,
getDailyLang()
returns a Promise that resolves to{ lang: <language>, langSetting: <specified language> }
, telling you both the language actually in effect and the language you've specified. For example, if you've specified'user'
as your language,getDailyLang()
might give you{ lang: 'en', langSetting: 'user'}
.
Bugfixes
width
andheight
have been added as arguments in the TypeScript declaration of thestartLiveStreaming()
method.
Other improvements
supportedBrowser().supported
now returnsfalse
for Edge 18. So long, Edge 18, it's been a wild ride 👋.'error'
and'camera-error'
event payloads now include an optionalerror
field in addition to the existingerrorMsg
field. This newerror
field includes atype
(which you can think of as an error code but a string constant) and an optionallocalizedMsg
, which can provide you with a localized UI-friendly message describing the error. Note that not all kinds of errors have anerror
field yet—seeindex.d.ts
'sDailyCameraErrorType
andDailyFatalErrorType
for supported error types so far—but the eventual goal is that you'll be able to stop relying onerrorMsg
in your code to identify errors.- The
preAuth()
method will now put the meeting into an'error'
state (meetingState() === 'error'
) if it determines that a provided join token is expired or not yet valid or if the room is expired or not yet valid, and will fire a corresponding'error'
event. This behavior better matchesjoin()
's behavior.