@vplayer/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/defaults.d.ts +4 -0
- package/dist/event-bus.d.ts +21 -0
- package/dist/gesture-engine.d.ts +23 -0
- package/dist/hotkey-registry.d.ts +32 -0
- package/dist/i18n.d.ts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +1446 -0
- package/dist/media-capabilities.d.ts +14 -0
- package/dist/media-engine/base-engine.d.ts +43 -0
- package/dist/media-engine/dash-engine.d.ts +32 -0
- package/dist/media-engine/hls-engine.d.ts +32 -0
- package/dist/media-engine/index.d.ts +7 -0
- package/dist/media-engine/native-engine.d.ts +9 -0
- package/dist/media-engine/types.d.ts +50 -0
- package/dist/player.d.ts +19 -0
- package/dist/plugin-api.d.ts +86 -0
- package/dist/source-resolver.d.ts +10 -0
- package/dist/state/slices.d.ts +134 -0
- package/dist/storage.d.ts +25 -0
- package/dist/subtitle-parser.d.ts +41 -0
- package/dist/types.d.ts +178 -0
- package/dist/utils.d.ts +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed event bus for player-wide communication.
|
|
3
|
+
* Companion to TanStack Store: store = state, event bus = actions/notifications.
|
|
4
|
+
*/
|
|
5
|
+
export type PlayerEventName = 'play' | 'pause' | 'seeked' | 'timeupdate' | 'ended' | 'volumechange' | 'ratechange' | 'fullscreenchange' | 'pipchange' | 'controlschange' | 'settingchange' | 'pluginregistered' | 'error' | 'sourcechange' | (string & {});
|
|
6
|
+
export type PlayerEventHandler = (...args: any[]) => void;
|
|
7
|
+
export declare class EventBus {
|
|
8
|
+
private listeners;
|
|
9
|
+
/** Subscribe to an event. Returns an unsubscribe function. */
|
|
10
|
+
on(event: PlayerEventName, handler: PlayerEventHandler): () => void;
|
|
11
|
+
/** Subscribe to an event for one invocation only. */
|
|
12
|
+
once(event: PlayerEventName, handler: PlayerEventHandler): () => void;
|
|
13
|
+
/** Unsubscribe a handler. If no handler given, removes all. */
|
|
14
|
+
off(event: PlayerEventName, handler?: PlayerEventHandler): void;
|
|
15
|
+
/** Emit an event with payload. */
|
|
16
|
+
emit(event: PlayerEventName, ...args: any[]): void;
|
|
17
|
+
/** Remove all listeners. */
|
|
18
|
+
clear(): void;
|
|
19
|
+
/** Number of listeners for an event (or total if no event given). */
|
|
20
|
+
listenerCount(event?: PlayerEventName): number;
|
|
21
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-agnostic touch gesture engine for media players.
|
|
3
|
+
*
|
|
4
|
+
* Detects horizontal swipe (seek), vertical swipe (volume on right half),
|
|
5
|
+
* single tap, and double-tap (skip left/right 10s).
|
|
6
|
+
*
|
|
7
|
+
* Returns plain DOM event handlers — works with any framework.
|
|
8
|
+
*/
|
|
9
|
+
export interface GestureEngineCallbacks {
|
|
10
|
+
seek: (time: number) => void;
|
|
11
|
+
setVolume: (v: number) => void;
|
|
12
|
+
skip: (seconds: number) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface GestureHandlers {
|
|
15
|
+
onTouchStart: (e: TouchEvent) => void;
|
|
16
|
+
onTouchMove: (e: TouchEvent) => void;
|
|
17
|
+
onTouchEnd: (e: TouchEvent) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function createGestureEngine(getState: () => {
|
|
20
|
+
currentTime: number;
|
|
21
|
+
volume: number;
|
|
22
|
+
duration: number;
|
|
23
|
+
}, callbacks: GestureEngineCallbacks): GestureHandlers;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extensible keyboard shortcut registry.
|
|
3
|
+
* Built-in hotkeys are registered by default; plugins can add/remove.
|
|
4
|
+
*/
|
|
5
|
+
export interface HotkeyBinding {
|
|
6
|
+
/** KeyboardEvent.code (e.g. 'Space', 'KeyK', 'ArrowLeft') */
|
|
7
|
+
key: string;
|
|
8
|
+
/** Human-readable description */
|
|
9
|
+
description: string;
|
|
10
|
+
/** Handler. Return false to prevent default propagation to other bindings of same key. */
|
|
11
|
+
handler: (event: KeyboardEvent) => void;
|
|
12
|
+
/** If true, fires even when an input/textarea is focused (default: false) */
|
|
13
|
+
allowWhenEditing?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class HotkeyRegistry {
|
|
16
|
+
private bindings;
|
|
17
|
+
private enabled;
|
|
18
|
+
/** Register a hotkey binding. Returns an unsubscribe function. */
|
|
19
|
+
register(binding: HotkeyBinding): () => void;
|
|
20
|
+
/** Unregister a specific binding. */
|
|
21
|
+
unregister(binding: HotkeyBinding): void;
|
|
22
|
+
/** Remove all bindings for a key. */
|
|
23
|
+
unregisterAll(key: string): void;
|
|
24
|
+
/** Clear all registered bindings. */
|
|
25
|
+
clear(): void;
|
|
26
|
+
/** Enable/disable hotkey processing. */
|
|
27
|
+
setEnabled(enabled: boolean): void;
|
|
28
|
+
/** Process a keydown event. Returns true if a binding handled it. */
|
|
29
|
+
handleKeyDown(event: KeyboardEvent): boolean;
|
|
30
|
+
/** Get all registered bindings (for debug display). */
|
|
31
|
+
getBindings(): HotkeyBinding[];
|
|
32
|
+
}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime-switchable i18n system.
|
|
3
|
+
* Plugins can add their own translations via addTranslations().
|
|
4
|
+
*/
|
|
5
|
+
export type LanguageDict = Record<string, string>;
|
|
6
|
+
export declare class I18n {
|
|
7
|
+
private languages;
|
|
8
|
+
private currentLang;
|
|
9
|
+
private currentDict;
|
|
10
|
+
constructor(initialLang?: string);
|
|
11
|
+
/** Get the current language code */
|
|
12
|
+
getLanguage(): string;
|
|
13
|
+
/** Set language by BCP 47 code (e.g. 'en', 'zh-cn', 'fr') */
|
|
14
|
+
setLanguage(lang: string): void;
|
|
15
|
+
/** Add or override translations for a language */
|
|
16
|
+
addTranslations(lang: string, dict: LanguageDict): void;
|
|
17
|
+
/** Translate a key. Supports simple {placeholder} substitution. */
|
|
18
|
+
t(key: string, fallback?: string, params?: Record<string, string | number>): string;
|
|
19
|
+
/** Get a copy of the current dict */
|
|
20
|
+
getCurrentDict(): LanguageDict;
|
|
21
|
+
/** Get available language codes */
|
|
22
|
+
getAvailableLanguages(): string[];
|
|
23
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export { createPlayer } from './player';
|
|
2
|
+
export { createGestureEngine } from './gesture-engine';
|
|
3
|
+
export type { GestureEngineCallbacks, GestureHandlers } from './gesture-engine';
|
|
4
|
+
export { EventBus } from './event-bus';
|
|
5
|
+
export type { PlayerEventName, PlayerEventHandler } from './event-bus';
|
|
6
|
+
export { Storage, STORAGE_KEYS } from './storage';
|
|
7
|
+
export { I18n } from './i18n';
|
|
8
|
+
export type { LanguageDict } from './i18n';
|
|
9
|
+
export { HotkeyRegistry } from './hotkey-registry';
|
|
10
|
+
export type { HotkeyBinding } from './hotkey-registry';
|
|
11
|
+
export { parseSRT, parseVTT, fetchSubtitles, getActiveCue, fetchThumbnails, parseThumbnailVTT, getThumbnailAtTime, parseTimestamp, } from './subtitle-parser';
|
|
12
|
+
export type { SubtitleCue, SubtitleTrack, ThumbnailCue } from './subtitle-parser';
|
|
13
|
+
export { detectSourceKind, toPlayerSource, createResolvedMediaEngine } from './source-resolver';
|
|
14
|
+
export type { PlayerSource, SourceKind } from './source-resolver';
|
|
15
|
+
export { canUseMSE, canUseNativeHLS, canUseFullscreen, canUsePictureInPicture, canUseTextTracks, getMediaCapabilities, isFiniteDuration, } from './media-capabilities';
|
|
16
|
+
export type { MediaCapabilitiesSnapshot } from './media-capabilities';
|
|
17
|
+
export { formatTime } from './utils';
|
|
18
|
+
export { defaultPlayerLabels, defaultPlayerIcons } from './defaults';
|
|
19
|
+
export { BaseMediaEngine, NativeVideoEngine, HlsMediaEngine, DashMediaEngine } from './media-engine';
|
|
20
|
+
export type { MediaEngine, MediaEngineDimensions, MediaEngineError, MediaEngineEvent, MediaEngineEventHandler, HlsMediaEngineOptions, DashMediaEngineOptions, } from './media-engine';
|
|
21
|
+
export { createMediaStore, getInitialMediaState, selectMedia, selectAudio, selectPreferences, selectUI, selectPlugins, selectThumbnails, selectError, } from './state/slices';
|
|
22
|
+
export type { PlayerOptions, MediaState, MediaRemote, PlayerLabels, PlayerIcons, SvgIcon, PlayerInstance, PlayerSystems, PlayerError, PlaybackStatus, } from './types';
|
|
23
|
+
export type { ControlRegistration, SettingRegistration, LayerRegistration, ContextMenuItem, ContextMenuRegistration, PlayerPlugin, PluginAPI, RemoteRef, PlayerContextRef, FlipState, AspectRatioState, SettingItem, } from './plugin-api';
|