Releases: etro-js/etro
Releases · etro-js/etro
v0.12.1
[0.12.1] - 2024-02-19
Fixed
- Importing etro in the client-side code of a NextJS project causing a "module not found" error (#243).
- Keyframes with values that are not numbers no longer result in type mismatches.
TypeError: this.data is undefined
when applying aTransform
effect with a dynamic matrix.
v0.12.0
Playback Update
0.11.0 - 2023-08-05
Added
duration
option forMovie#play
(#208).
Fixed
- Audio and video layers going silent after the first time recording the movie (#106).
Failed to set the 'currentTime' property on 'HTMLMediaElement'
error when seeking audio and video layers (#227).- Seeking while playing not updating the movie's current time (#233).
Security
- Bump word-wrap from 1.2.3 to 1.2.5 (#222).
v0.10.1
Streaming Update
0.10.0 - 2023-04-18
Added
Movie#stream()
to stream the movie to aMediaStream
.- New
onStart
option forMovie#play()
andMovie#record()
. - Image, audio and video layers'
source
properties now accept urls (#153). - Movies, layers and effects have a new
ready
getter, indicating if they are ready to play. - Layers and effects now have an async
whenReady
method. Movie#seek()
method.- Layers have new
seek()
andprogress()
methods. once
option forsubscribe
.
Changed
- The (deprecated)
'movie.pause'
event is now published every time playback stops, regardless of the reason. source
properties ofImage
,Audio
andVideo
have been retyped toHTMLImageElement
,HTMLAudioElement
andHTMLVideoElement
respectively.
Deprecated
etro.applyOptions()
andEtroObject#getDefaultOptions()
are deprecated. Instead, set each option in the constructor (#131).- The
Movie#currentTime
setter is deprecated. UseMovie#seek()
instead. Movie#setCurrentTime()
is deprecated. Instead, callseek()
andrefresh()
separately.- The
'movie.seek'
event is deprecated. Override theseek()
method on layers instead. - The
'movie.timeupdate'
event is deprecated. Override theprogress()
method on layers instead. - The
'movie.loadeddata'
event is deprecated. - The
'movie.play'
event is deprecated. Provide theonStart
option toplay()
,stream()
orrecord()
instead. - The
'movie.pause'
event is deprecated. Wait forplay()
,stream()
orrecord()
to resolve instead. - The
'movie.record'
event is deprecated. Provide theonStart
option torecord()
instead. - The
'movie.recordended'
event is deprecated. Wait forrecord()
to resolve instead. - The
'movie.ended'
event is deprecated.
Removed
Movie#autoRefresh
(see #130).change
events (see #130).watchPublic()
andpublicExcludes
(see #130).
Fixed
Movie#currentTime
is now reset to 0 when the movie ends.Movie#play()
andMovie#record()
now wait until all resources are loaded before starting.Movie#pause()
no longer stops inactive layers (#203).- Array methods like
unshift
foretro.layer.Visual#effects
andetro.effect.Stack#effects
work properly. AudioSource#playbackRate
is now optional.duration
option forAudio
andVideo
layers is now optional.Video
constructor now accepts missing options.
v0.9.1
Boring Update
0.9.0 - 2022-07-17
Changed
- Methods in the
Base
effect now acceptBase
layers instead ofVisual
layers.
Deprecated
Fixed
- Layers no longer trigger infinite loops when their active states change (#127).
- Add missing
VisualSource
options toImage
layer (#128). - Layers are now stopped when recording ends.
stop()
is no longer called on inactive layers.- Movies no longer publish
'movie.ended'
when done recording. Audio
andVideo
layers not detaching properly.- When done playing or recording, movies only reset their time if they're in repeat mode.
- The
timeupdate
event is no longer fired whencurrentTime
remains the same (due toperformance.now()
rounding).