MCPcopy Create free account
hub / github.com/heygen-com/hyperframes / createPlayerApiCompat

Function createPlayerApiCompat

packages/core/src/runtime/init.ts:193–267  ·  view source on GitHub ↗
(basePlayer: {
    _timeline: RuntimeTimelineLike | null;
    play: () => void;
    pause: () => void;
    seek: (timeSeconds: number, options?: { keepPlaying?: boolean }) => void;
    getTime: () => number;
    getDuration: () => number;
    isPlaying: () => boolean;
    renderSeek: (timeSeconds: number) => void;
  })

Source from the content-addressed store, hash-verified

191 });
192 };
193 const createPlayerApiCompat = (basePlayer: {
194 _timeline: RuntimeTimelineLike | null;
195 play: () => void;
196 pause: () => void;
197 seek: (timeSeconds: number, options?: { keepPlaying?: boolean }) => void;
198 getTime: () => number;
199 getDuration: () => number;
200 isPlaying: () => boolean;
201 renderSeek: (timeSeconds: number) => void;
202 }): PlayerAPI => {
203 const defaultStageZoom: ReturnType<PlayerAPI["getStageZoom"]> = {
204 scale: 1,
205 focusX: 960,
206 focusY: 540,
207 };
208 const emptyStageZoomKeyframes: ReturnType<PlayerAPI["getStageZoomKeyframes"]> = [];
209 const emptyVisibleElements: ReturnType<PlayerAPI["getVisibleElements"]> = [];
210 const defaultRenderState: ReturnType<PlayerAPI["getRenderState"]> = {
211 time: basePlayer.getTime(),
212 duration: basePlayer.getDuration(),
213 isPlaying: basePlayer.isPlaying(),
214 renderMode: false,
215 timelineDirty: false,
216 };
217 return {
218 play: basePlayer.play,
219 pause: basePlayer.pause,
220 seek: basePlayer.seek,
221 getTime: basePlayer.getTime,
222 getDuration: basePlayer.getDuration,
223 isPlaying: basePlayer.isPlaying,
224 getMainTimeline: () => null,
225 getElementBounds: () => {},
226 getElementsAtPoint: () => {},
227 setElementPosition: () => {},
228 previewElementPosition: () => {},
229 setElementKeyframes: () => {},
230 setElementScale: () => {},
231 setElementFontSize: () => {},
232 setElementTextContent: () => {},
233 setElementTextColor: () => {},
234 setElementTextShadow: () => {},
235 setElementTextFontWeight: () => {},
236 setElementTextFontFamily: () => {},
237 setElementTextOutline: () => {},
238 setElementTextHighlight: () => {},
239 setElementVolume: () => {},
240 setStageZoom: () => {},
241 getStageZoom: () => defaultStageZoom,
242 setStageZoomKeyframes: () => {},
243 getStageZoomKeyframes: () => emptyStageZoomKeyframes,
244 addElement: () => false,
245 removeElement: () => false,
246 updateElementTiming: () => false,
247 setElementTiming: () => {},
248 updateElementSrc: () => false,
249 updateElementLayer: () => false,
250 updateElementBasePosition: () => false,

Callers 1

Calls 3

getTimeMethod · 0.65
getDurationMethod · 0.65
isPlayingMethod · 0.65

Tested by

no test coverage detected