import { NitroModules } from 'react-native-nitro-modules'; import type { PlaybackEngine as PlaybackEngineHybrid } from '../specs/PlaybackEngine.nitro'; import type { PlaybackEngineFactory } from '../specs/PlaybackEngine.nitro'; const factory = NitroModules.createHybridObject( 'PlaybackEngineFactory' ); /** * Imperative API for creating PlaybackEngine instances. * * Low-level factory for creating a native playback engine. Most apps should * create engines through `createAviation().createPlayer()` so the * engine, store, session, plugins, and controllers share one lifecycle. * * @example * ```ts * const engine = PlaybackEngine.create() * * // Load without playing * await engine.load(item) * // ... later * await engine.play() * * // Or load and play immediately * await engine.loadAndPlay(item) * * engine.setQueue([item1, item2, item3]) * await engine.skipToNext() * ``` */ export const PlaybackEngine = { /** * Create a new PlaybackEngine instance. */ create(): PlaybackEngineHybrid { return factory.create(); }, };