@motion-script/core / StorageAdapter
Abstract Class: StorageAdapter
Defined in: platform/storage-adapter.ts:5
Internal
Constructors
Constructor
new StorageAdapter(
catalog,viewport):StorageAdapter
Defined in: platform/storage-adapter.ts:8
Parameters
catalog
viewport
Returns
StorageAdapter
Properties
cachedAssets
protectedcachedAssets:Set<string>
Defined in: platform/storage-adapter.ts:37
Keys of assets that have been fully loaded and are ready to use.
catalog
protectedcatalog:AssetCatalog
Defined in: platform/storage-adapter.ts:6
inFlightLoads
protectedinFlightLoads:Map<string,Promise<void>>
Defined in: platform/storage-adapter.ts:35
Every asset src whose loadXxx is currently in flight, mapped to its pending promise. The render path awaits these to guarantee no draw happens while a load is still resolving. Cleared on completion.
viewport
protectedviewport:Size2D
Defined in: platform/storage-adapter.ts:7
Methods
dispose()
dispose():
void
Defined in: platform/storage-adapter.ts:142
Returns
void
fetchAudioData()
abstractfetchAudioData(src):Promise<ArrayBuffer>
Defined in: platform/storage-adapter.ts:114
Parameters
src
string
Returns
Promise<ArrayBuffer>
loadAsset()
loadAsset(
key,value):Promise<void>
Defined in: platform/storage-adapter.ts:41
Parameters
key
string
value
AssetRecord
Returns
Promise<void>
loadAudio()
abstractloadAudio(src,startFrame,endFrame,trimStart,trimEnd?):Promise<void>
Defined in: platform/storage-adapter.ts:107
Parameters
src
string
startFrame
number
endFrame
number
trimStart
number
trimEnd?
number
Returns
Promise<void>
loadFont()
abstractloadFont(src,fontFamily,fontWeight):Promise<void>
Defined in: platform/storage-adapter.ts:115
Parameters
src
string
fontFamily
string
fontWeight
number
Returns
Promise<void>
loadImage()
abstractloadImage(src,width,height):Promise<void>
Defined in: platform/storage-adapter.ts:97
Parameters
src
string
width
number
height
number
Returns
Promise<void>
loadVideo()
abstractloadVideo(src,startFrame,endFrame,width,height,trimStart,trimEnd?):Promise<void>
Defined in: platform/storage-adapter.ts:98
Parameters
src
string
startFrame
number
endFrame
number
width
number
height
number
trimStart
number
trimEnd?
number
Returns
Promise<void>
parseFontKey()
protectedparseFontKey(key):object
Defined in: platform/storage-adapter.ts:86
Parameters
key
string
Returns
object
fontFamily
fontFamily:
string
fontWeight
fontWeight:
number
setCatalog()
setCatalog(
catalog):void
Defined in: platform/storage-adapter.ts:27
Point the adapter at a different asset catalog, keeping every decode it has already cached.
Safe because the catalog supplies metadata (durations, intrinsic sizes) while the caches are keyed by source URL: a src the new catalog drops leaves an orphaned decode, and a src it adds simply isn't cached yet. Neither is a correctness problem, which is what lets a long-lived renderer take an updated manifest without paying to re-decode everything still in use.
The viewport deliberately has no such setter — it clamps the resolution images are decoded at, so changing it makes cached decodes genuinely wrong, and the adapter has to be rebuilt.
Parameters
catalog
Returns
void
setPlaying()
setPlaying(
_playing):void
Defined in: platform/storage-adapter.ts:136
Notify the adapter whether playback is live. Time-varying media (video) uses this to prefetch ahead only while playing and to quiesce on pause, so a paused timeline doesn't drain a backlog of stale decodes. No-op by default.
Parameters
_playing
boolean
Returns
void
warmPendingVideo()
warmPendingVideo():
Promise<boolean>
Defined in: platform/storage-adapter.ts:127
Decode any exact media frames the most recent render asked for but couldn't satisfy synchronously (e.g. a video frame at a freshly-seeked timestamp), and report whether there were any. A blocking caller (seek / screenshot / export) renders once, awaits this, and re-renders while it returns true so the frame is accurate even on a cold jump. Defaults to a no-op for adapters with no time-varying media.
Returns
Promise<boolean>