@livepeer-frameworks/player-svelte 0.1.1 → 0.1.2
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/DevModePanel.svelte +266 -127
- package/dist/DevModePanel.svelte.d.ts +1 -1
- package/dist/DvdLogo.svelte +17 -21
- package/dist/Icons.svelte +5 -3
- package/dist/Icons.svelte.d.ts +6 -19
- package/dist/IdleScreen.svelte +277 -186
- package/dist/IdleScreen.svelte.d.ts +1 -1
- package/dist/LoadingScreen.svelte +190 -162
- package/dist/Player.svelte +244 -111
- package/dist/Player.svelte.d.ts +1 -1
- package/dist/PlayerControls.svelte +263 -168
- package/dist/PlayerControls.svelte.d.ts +1 -1
- package/dist/SeekBar.svelte +61 -35
- package/dist/SkipIndicator.svelte +4 -4
- package/dist/SkipIndicator.svelte.d.ts +1 -1
- package/dist/SpeedIndicator.svelte +1 -1
- package/dist/StatsPanel.svelte +76 -57
- package/dist/StatsPanel.svelte.d.ts +1 -1
- package/dist/StreamStateOverlay.svelte +143 -107
- package/dist/StreamStateOverlay.svelte.d.ts +1 -1
- package/dist/SubtitleRenderer.svelte +46 -43
- package/dist/ThumbnailOverlay.svelte +22 -19
- package/dist/TitleOverlay.svelte +6 -11
- package/dist/components/VolumeIcons.svelte +12 -6
- package/dist/global.d.ts +3 -3
- package/dist/icons/FullscreenExitIcon.svelte +1 -5
- package/dist/icons/FullscreenIcon.svelte +1 -5
- package/dist/icons/PauseIcon.svelte +1 -5
- package/dist/icons/PictureInPictureIcon.svelte +12 -6
- package/dist/icons/PlayIcon.svelte +1 -5
- package/dist/icons/SeekToLiveIcon.svelte +1 -5
- package/dist/icons/SettingsIcon.svelte +1 -5
- package/dist/icons/SkipBackIcon.svelte +1 -5
- package/dist/icons/SkipForwardIcon.svelte +1 -5
- package/dist/icons/StatsIcon.svelte +1 -5
- package/dist/icons/VolumeOffIcon.svelte +1 -5
- package/dist/icons/VolumeUpIcon.svelte +1 -5
- package/dist/icons/index.d.ts +12 -12
- package/dist/icons/index.js +12 -12
- package/dist/index.d.ts +24 -24
- package/dist/index.js +21 -21
- package/dist/stores/index.d.ts +6 -6
- package/dist/stores/index.js +6 -6
- package/dist/stores/playbackQuality.d.ts +2 -2
- package/dist/stores/playbackQuality.js +7 -7
- package/dist/stores/playerContext.d.ts +2 -2
- package/dist/stores/playerContext.js +17 -17
- package/dist/stores/playerController.d.ts +13 -4
- package/dist/stores/playerController.js +80 -56
- package/dist/stores/playerSelection.d.ts +2 -2
- package/dist/stores/playerSelection.js +7 -7
- package/dist/stores/streamState.d.ts +2 -2
- package/dist/stores/streamState.js +56 -56
- package/dist/stores/viewerEndpoints.d.ts +3 -3
- package/dist/stores/viewerEndpoints.js +21 -21
- package/dist/types.d.ts +1 -1
- package/dist/ui/Badge.svelte +9 -10
- package/dist/ui/Badge.svelte.d.ts +8 -29
- package/dist/ui/Button.svelte +16 -16
- package/dist/ui/Button.svelte.d.ts +8 -29
- package/dist/ui/Slider.svelte +21 -55
- package/dist/ui/badge.js +1 -1
- package/dist/ui/button.js +2 -2
- package/dist/ui/context-menu/ContextMenuCheckboxItem.svelte +5 -7
- package/dist/ui/context-menu/ContextMenuCheckboxItem.svelte.d.ts +6 -27
- package/dist/ui/context-menu/ContextMenuContent.svelte +2 -9
- package/dist/ui/context-menu/ContextMenuItem.svelte +1 -5
- package/dist/ui/context-menu/ContextMenuLabel.svelte +1 -5
- package/dist/ui/context-menu/ContextMenuRadioItem.svelte +5 -7
- package/dist/ui/context-menu/ContextMenuRadioItem.svelte.d.ts +6 -27
- package/dist/ui/context-menu/ContextMenuSeparator.svelte +2 -8
- package/dist/ui/context-menu/ContextMenuShortcut.svelte +2 -12
- package/dist/ui/context-menu/ContextMenuSubContent.svelte +1 -5
- package/package.json +15 -7
- package/src/DevModePanel.svelte +1 -0
- package/src/Icons.svelte +5 -3
- package/src/IdleScreen.svelte +21 -14
- package/src/LoadingScreen.svelte +20 -13
- package/src/Player.svelte +48 -2
- package/src/PlayerControls.svelte +36 -17
- package/src/SeekBar.svelte +33 -0
- package/src/StreamStateOverlay.svelte +2 -2
- package/src/stores/playerController.ts +39 -1
- package/src/stores/viewerEndpoints.ts +1 -1
- package/src/ui/Badge.svelte +7 -4
- package/src/ui/Button.svelte +13 -13
- package/src/ui/context-menu/ContextMenuCheckboxItem.svelte +4 -2
- package/src/ui/context-menu/ContextMenuRadioItem.svelte +4 -2
|
@@ -8,11 +8,7 @@
|
|
|
8
8
|
class?: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
let {
|
|
12
|
-
size = 16,
|
|
13
|
-
color = 'currentColor',
|
|
14
|
-
class: className = '',
|
|
15
|
-
}: Props = $props();
|
|
11
|
+
let { size = 16, color = "currentColor", class: className = "" }: Props = $props();
|
|
16
12
|
</script>
|
|
17
13
|
|
|
18
14
|
<svg
|
|
@@ -23,6 +19,16 @@
|
|
|
23
19
|
class={className}
|
|
24
20
|
aria-hidden="true"
|
|
25
21
|
>
|
|
26
|
-
<rect
|
|
22
|
+
<rect
|
|
23
|
+
x="2"
|
|
24
|
+
y="3"
|
|
25
|
+
width="20"
|
|
26
|
+
height="14"
|
|
27
|
+
rx="2"
|
|
28
|
+
ry="2"
|
|
29
|
+
stroke={color}
|
|
30
|
+
stroke-width="2"
|
|
31
|
+
fill="none"
|
|
32
|
+
/>
|
|
27
33
|
<rect x="8" y="10" width="10" height="6" rx="1" ry="1" fill={color} />
|
|
28
34
|
</svg>
|
package/dist/icons/index.d.ts
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Port of src/components/Icons.tsx
|
|
5
5
|
*/
|
|
6
|
-
export { default as PlayIcon } from
|
|
7
|
-
export { default as PauseIcon } from
|
|
8
|
-
export { default as SkipBackIcon } from
|
|
9
|
-
export { default as SkipForwardIcon } from
|
|
10
|
-
export { default as VolumeUpIcon } from
|
|
11
|
-
export { default as VolumeOffIcon } from
|
|
12
|
-
export { default as FullscreenIcon } from
|
|
13
|
-
export { default as FullscreenExitIcon } from
|
|
14
|
-
export { default as SettingsIcon } from
|
|
15
|
-
export { default as StatsIcon } from
|
|
16
|
-
export { default as PictureInPictureIcon } from
|
|
17
|
-
export { default as SeekToLiveIcon } from
|
|
6
|
+
export { default as PlayIcon } from "./PlayIcon.svelte";
|
|
7
|
+
export { default as PauseIcon } from "./PauseIcon.svelte";
|
|
8
|
+
export { default as SkipBackIcon } from "./SkipBackIcon.svelte";
|
|
9
|
+
export { default as SkipForwardIcon } from "./SkipForwardIcon.svelte";
|
|
10
|
+
export { default as VolumeUpIcon } from "./VolumeUpIcon.svelte";
|
|
11
|
+
export { default as VolumeOffIcon } from "./VolumeOffIcon.svelte";
|
|
12
|
+
export { default as FullscreenIcon } from "./FullscreenIcon.svelte";
|
|
13
|
+
export { default as FullscreenExitIcon } from "./FullscreenExitIcon.svelte";
|
|
14
|
+
export { default as SettingsIcon } from "./SettingsIcon.svelte";
|
|
15
|
+
export { default as StatsIcon } from "./StatsIcon.svelte";
|
|
16
|
+
export { default as PictureInPictureIcon } from "./PictureInPictureIcon.svelte";
|
|
17
|
+
export { default as SeekToLiveIcon } from "./SeekToLiveIcon.svelte";
|
package/dist/icons/index.js
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Port of src/components/Icons.tsx
|
|
5
5
|
*/
|
|
6
|
-
export { default as PlayIcon } from
|
|
7
|
-
export { default as PauseIcon } from
|
|
8
|
-
export { default as SkipBackIcon } from
|
|
9
|
-
export { default as SkipForwardIcon } from
|
|
10
|
-
export { default as VolumeUpIcon } from
|
|
11
|
-
export { default as VolumeOffIcon } from
|
|
12
|
-
export { default as FullscreenIcon } from
|
|
13
|
-
export { default as FullscreenExitIcon } from
|
|
14
|
-
export { default as SettingsIcon } from
|
|
15
|
-
export { default as StatsIcon } from
|
|
16
|
-
export { default as PictureInPictureIcon } from
|
|
17
|
-
export { default as SeekToLiveIcon } from
|
|
6
|
+
export { default as PlayIcon } from "./PlayIcon.svelte";
|
|
7
|
+
export { default as PauseIcon } from "./PauseIcon.svelte";
|
|
8
|
+
export { default as SkipBackIcon } from "./SkipBackIcon.svelte";
|
|
9
|
+
export { default as SkipForwardIcon } from "./SkipForwardIcon.svelte";
|
|
10
|
+
export { default as VolumeUpIcon } from "./VolumeUpIcon.svelte";
|
|
11
|
+
export { default as VolumeOffIcon } from "./VolumeOffIcon.svelte";
|
|
12
|
+
export { default as FullscreenIcon } from "./FullscreenIcon.svelte";
|
|
13
|
+
export { default as FullscreenExitIcon } from "./FullscreenExitIcon.svelte";
|
|
14
|
+
export { default as SettingsIcon } from "./SettingsIcon.svelte";
|
|
15
|
+
export { default as StatsIcon } from "./StatsIcon.svelte";
|
|
16
|
+
export { default as PictureInPictureIcon } from "./PictureInPictureIcon.svelte";
|
|
17
|
+
export { default as SeekToLiveIcon } from "./SeekToLiveIcon.svelte";
|
package/dist/index.d.ts
CHANGED
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
* />
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
export { default as Button } from
|
|
28
|
-
export { default as Badge } from
|
|
29
|
-
export { default as Slider } from
|
|
30
|
-
export { default as Player } from
|
|
31
|
-
export { default as PlayerControls } from
|
|
32
|
-
export { default as SeekBar } from
|
|
33
|
-
export { default as SpeedIndicator } from
|
|
34
|
-
export { default as SkipIndicator } from
|
|
35
|
-
export { default as IdleScreen } from
|
|
36
|
-
export { default as LoadingScreen } from
|
|
37
|
-
export { default as StreamStateOverlay } from
|
|
38
|
-
export { default as SubtitleRenderer } from
|
|
39
|
-
export { default as DvdLogo } from
|
|
40
|
-
export { default as TitleOverlay } from
|
|
41
|
-
export { default as ThumbnailOverlay } from
|
|
42
|
-
export { default as StatsPanel } from
|
|
43
|
-
export { default as DevModePanel } from
|
|
44
|
-
export * from
|
|
45
|
-
export * from
|
|
46
|
-
export * from
|
|
47
|
-
export type { SkipDirection } from
|
|
48
|
-
export { PlayerController, PlayerManager, globalPlayerManager } from
|
|
49
|
-
export type { PlayerControllerConfig, PlayerControllerEvents } from
|
|
50
|
-
export type { PlayerState, PlayerStateContext, StreamState, StreamStatus, ContentMetadata, ContentEndpoints, EndpointInfo, PlaybackMode, PlaybackQuality, MistStreamInfo, PlayerOptions, PlayerMetadata, PlayerSelection, PlayerCombination, PlayerManagerOptions, PlayerManagerEvents, } from
|
|
27
|
+
export { default as Button } from "./ui/Button.svelte";
|
|
28
|
+
export { default as Badge } from "./ui/Badge.svelte";
|
|
29
|
+
export { default as Slider } from "./ui/Slider.svelte";
|
|
30
|
+
export { default as Player } from "./Player.svelte";
|
|
31
|
+
export { default as PlayerControls } from "./PlayerControls.svelte";
|
|
32
|
+
export { default as SeekBar } from "./SeekBar.svelte";
|
|
33
|
+
export { default as SpeedIndicator } from "./SpeedIndicator.svelte";
|
|
34
|
+
export { default as SkipIndicator } from "./SkipIndicator.svelte";
|
|
35
|
+
export { default as IdleScreen } from "./IdleScreen.svelte";
|
|
36
|
+
export { default as LoadingScreen } from "./LoadingScreen.svelte";
|
|
37
|
+
export { default as StreamStateOverlay } from "./StreamStateOverlay.svelte";
|
|
38
|
+
export { default as SubtitleRenderer } from "./SubtitleRenderer.svelte";
|
|
39
|
+
export { default as DvdLogo } from "./DvdLogo.svelte";
|
|
40
|
+
export { default as TitleOverlay } from "./TitleOverlay.svelte";
|
|
41
|
+
export { default as ThumbnailOverlay } from "./ThumbnailOverlay.svelte";
|
|
42
|
+
export { default as StatsPanel } from "./StatsPanel.svelte";
|
|
43
|
+
export { default as DevModePanel } from "./DevModePanel.svelte";
|
|
44
|
+
export * from "./icons";
|
|
45
|
+
export * from "./stores";
|
|
46
|
+
export * from "./ui/context-menu";
|
|
47
|
+
export type { SkipDirection } from "./types";
|
|
48
|
+
export { PlayerController, PlayerManager, globalPlayerManager, } from "@livepeer-frameworks/player-core";
|
|
49
|
+
export type { PlayerControllerConfig, PlayerControllerEvents, } from "@livepeer-frameworks/player-core";
|
|
50
|
+
export type { PlayerState, PlayerStateContext, StreamState, StreamStatus, ContentMetadata, ContentEndpoints, EndpointInfo, PlaybackMode, PlaybackQuality, MistStreamInfo, PlayerOptions, PlayerMetadata, PlayerSelection, PlayerCombination, PlayerManagerOptions, PlayerManagerEvents, } from "@livepeer-frameworks/player-core";
|
package/dist/index.js
CHANGED
|
@@ -25,30 +25,30 @@
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
// UI primitives
|
|
28
|
-
export { default as Button } from
|
|
29
|
-
export { default as Badge } from
|
|
30
|
-
export { default as Slider } from
|
|
28
|
+
export { default as Button } from "./ui/Button.svelte";
|
|
29
|
+
export { default as Badge } from "./ui/Badge.svelte";
|
|
30
|
+
export { default as Slider } from "./ui/Slider.svelte";
|
|
31
31
|
// Main components
|
|
32
|
-
export { default as Player } from
|
|
33
|
-
export { default as PlayerControls } from
|
|
34
|
-
export { default as SeekBar } from
|
|
32
|
+
export { default as Player } from "./Player.svelte";
|
|
33
|
+
export { default as PlayerControls } from "./PlayerControls.svelte";
|
|
34
|
+
export { default as SeekBar } from "./SeekBar.svelte";
|
|
35
35
|
// Overlay components
|
|
36
|
-
export { default as SpeedIndicator } from
|
|
37
|
-
export { default as SkipIndicator } from
|
|
38
|
-
export { default as IdleScreen } from
|
|
39
|
-
export { default as LoadingScreen } from
|
|
40
|
-
export { default as StreamStateOverlay } from
|
|
41
|
-
export { default as SubtitleRenderer } from
|
|
42
|
-
export { default as DvdLogo } from
|
|
43
|
-
export { default as TitleOverlay } from
|
|
44
|
-
export { default as ThumbnailOverlay } from
|
|
45
|
-
export { default as StatsPanel } from
|
|
46
|
-
export { default as DevModePanel } from
|
|
36
|
+
export { default as SpeedIndicator } from "./SpeedIndicator.svelte";
|
|
37
|
+
export { default as SkipIndicator } from "./SkipIndicator.svelte";
|
|
38
|
+
export { default as IdleScreen } from "./IdleScreen.svelte";
|
|
39
|
+
export { default as LoadingScreen } from "./LoadingScreen.svelte";
|
|
40
|
+
export { default as StreamStateOverlay } from "./StreamStateOverlay.svelte";
|
|
41
|
+
export { default as SubtitleRenderer } from "./SubtitleRenderer.svelte";
|
|
42
|
+
export { default as DvdLogo } from "./DvdLogo.svelte";
|
|
43
|
+
export { default as TitleOverlay } from "./TitleOverlay.svelte";
|
|
44
|
+
export { default as ThumbnailOverlay } from "./ThumbnailOverlay.svelte";
|
|
45
|
+
export { default as StatsPanel } from "./StatsPanel.svelte";
|
|
46
|
+
export { default as DevModePanel } from "./DevModePanel.svelte";
|
|
47
47
|
// Icon components
|
|
48
|
-
export * from
|
|
48
|
+
export * from "./icons";
|
|
49
49
|
// Stores
|
|
50
|
-
export * from
|
|
50
|
+
export * from "./stores";
|
|
51
51
|
// Context menu components
|
|
52
|
-
export * from
|
|
52
|
+
export * from "./ui/context-menu";
|
|
53
53
|
// Re-export core types and classes for Svelte users
|
|
54
|
-
export { PlayerController, PlayerManager, globalPlayerManager } from
|
|
54
|
+
export { PlayerController, PlayerManager, globalPlayerManager, } from "@livepeer-frameworks/player-core";
|
package/dist/stores/index.d.ts
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* - Player instance context sharing
|
|
8
8
|
* - Playback quality monitoring
|
|
9
9
|
*/
|
|
10
|
-
export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, type StreamStateOptions, type StreamStateStore, } from
|
|
11
|
-
export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, type ViewerEndpointsOptions, type ViewerEndpointsStore, type ViewerEndpointsState, type EndpointStatus, } from
|
|
12
|
-
export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, type PlayerContextState, type PlayerContextStore, } from
|
|
13
|
-
export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, type PlaybackQualityOptions, type PlaybackQualityStore, } from
|
|
14
|
-
export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, type PlayerSelectionOptions, type PlayerSelectionState, type PlayerSelectionStore, } from
|
|
15
|
-
export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, type PlayerControllerStoreConfig, type PlayerControllerState, type PlayerControllerStore, } from
|
|
10
|
+
export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, type StreamStateOptions, type StreamStateStore, } from "./streamState";
|
|
11
|
+
export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, type ViewerEndpointsOptions, type ViewerEndpointsStore, type ViewerEndpointsState, type EndpointStatus, } from "./viewerEndpoints";
|
|
12
|
+
export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, type PlayerContextState, type PlayerContextStore, } from "./playerContext";
|
|
13
|
+
export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, type PlaybackQualityOptions, type PlaybackQualityStore, } from "./playbackQuality";
|
|
14
|
+
export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, type PlayerSelectionOptions, type PlayerSelectionState, type PlayerSelectionStore, } from "./playerSelection";
|
|
15
|
+
export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, type PlayerControllerStoreConfig, type PlayerControllerState, type PlayerControllerStore, } from "./playerController";
|
package/dist/stores/index.js
CHANGED
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
* - Playback quality monitoring
|
|
9
9
|
*/
|
|
10
10
|
// Stream state (MistServer polling)
|
|
11
|
-
export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, } from
|
|
11
|
+
export { createStreamStateManager, createDerivedStreamStatus, createDerivedIsOnline, createDerivedStreamInfo, } from "./streamState";
|
|
12
12
|
// Viewer endpoints (Gateway resolution)
|
|
13
|
-
export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, } from
|
|
13
|
+
export { createEndpointResolver, createDerivedEndpoints, createDerivedPrimaryEndpoint, createDerivedMetadata, createDerivedStatus, } from "./viewerEndpoints";
|
|
14
14
|
// Player context (instance sharing)
|
|
15
|
-
export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, } from
|
|
15
|
+
export { createPlayerContext, setPlayerContextInComponent, getPlayerContextFromComponent, getPlayerContextOrFallback, createDerivedVideoElement, createDerivedIsReady, createDerivedPlayerInfo, } from "./playerContext";
|
|
16
16
|
// Playback quality monitoring
|
|
17
|
-
export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, } from
|
|
17
|
+
export { createPlaybackQualityMonitor, createDerivedQualityScore, createDerivedStallCount, createDerivedFrameDropRate, createDerivedBitrate, createDerivedLatency, } from "./playbackQuality";
|
|
18
18
|
// Player selection (event-driven, cached)
|
|
19
|
-
export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, } from
|
|
19
|
+
export { createPlayerSelectionStore, createDerivedSelection, createDerivedCombinations, createDerivedReady, createDerivedSelectedPlayer, createDerivedSelectedSourceType, createDerivedCompatibleCombinations, createDerivedIncompatibleCombinations, } from "./playerSelection";
|
|
20
20
|
// PlayerController store (central orchestrator)
|
|
21
|
-
export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, } from
|
|
21
|
+
export { createPlayerControllerStore, createDerivedState, createDerivedIsPlaying, createDerivedCurrentTime, createDerivedDuration, createDerivedError, createDerivedVideoElement as createDerivedControllerVideoElement, createDerivedShouldShowControls, createDerivedShouldShowIdleScreen, } from "./playerController";
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Wraps QualityMonitor for reactive quality metrics.
|
|
5
5
|
*/
|
|
6
|
-
import { type Readable } from
|
|
7
|
-
import { type PlaybackQuality } from
|
|
6
|
+
import { type Readable } from "svelte/store";
|
|
7
|
+
import { type PlaybackQuality } from "@livepeer-frameworks/player-core";
|
|
8
8
|
export interface PlaybackQualityOptions {
|
|
9
9
|
sampleInterval?: number;
|
|
10
10
|
enabled?: boolean;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Wraps QualityMonitor for reactive quality metrics.
|
|
5
5
|
*/
|
|
6
|
-
import { writable, derived } from
|
|
7
|
-
import { QualityMonitor } from
|
|
6
|
+
import { writable, derived } from "svelte/store";
|
|
7
|
+
import { QualityMonitor } from "@livepeer-frameworks/player-core";
|
|
8
8
|
/**
|
|
9
9
|
* Create a playback quality monitoring store.
|
|
10
10
|
*
|
|
@@ -81,18 +81,18 @@ export function createPlaybackQualityMonitor(options = {}) {
|
|
|
81
81
|
}
|
|
82
82
|
// Convenience derived stores
|
|
83
83
|
export function createDerivedQualityScore(store) {
|
|
84
|
-
return derived(store, $quality => $quality?.score ?? 100);
|
|
84
|
+
return derived(store, ($quality) => $quality?.score ?? 100);
|
|
85
85
|
}
|
|
86
86
|
export function createDerivedStallCount(store) {
|
|
87
|
-
return derived(store, $quality => $quality?.stallCount ?? 0);
|
|
87
|
+
return derived(store, ($quality) => $quality?.stallCount ?? 0);
|
|
88
88
|
}
|
|
89
89
|
export function createDerivedFrameDropRate(store) {
|
|
90
|
-
return derived(store, $quality => $quality?.frameDropRate ?? 0);
|
|
90
|
+
return derived(store, ($quality) => $quality?.frameDropRate ?? 0);
|
|
91
91
|
}
|
|
92
92
|
export function createDerivedBitrate(store) {
|
|
93
|
-
return derived(store, $quality => $quality?.bitrate ?? 0);
|
|
93
|
+
return derived(store, ($quality) => $quality?.bitrate ?? 0);
|
|
94
94
|
}
|
|
95
95
|
export function createDerivedLatency(store) {
|
|
96
|
-
return derived(store, $quality => $quality?.latency);
|
|
96
|
+
return derived(store, ($quality) => $quality?.latency);
|
|
97
97
|
}
|
|
98
98
|
export default createPlaybackQualityMonitor;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Port of PlayerContext.tsx React context to Svelte 5 stores.
|
|
5
5
|
*/
|
|
6
|
-
import { type Readable } from
|
|
7
|
-
import { type StreamInfo, type IPlayer } from
|
|
6
|
+
import { type Readable } from "svelte/store";
|
|
7
|
+
import { type StreamInfo, type IPlayer } from "@livepeer-frameworks/player-core";
|
|
8
8
|
export interface PlayerContextState {
|
|
9
9
|
/** Current video element (if available) */
|
|
10
10
|
videoElement: HTMLVideoElement | null;
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Port of PlayerContext.tsx React context to Svelte 5 stores.
|
|
5
5
|
*/
|
|
6
|
-
import { writable, derived } from
|
|
7
|
-
import { getContext, setContext } from
|
|
8
|
-
import { globalPlayerManager } from
|
|
6
|
+
import { writable, derived } from "svelte/store";
|
|
7
|
+
import { getContext, setContext } from "svelte";
|
|
8
|
+
import { globalPlayerManager, } from "@livepeer-frameworks/player-core";
|
|
9
9
|
// Context key
|
|
10
|
-
const PLAYER_CONTEXT_KEY = Symbol(
|
|
10
|
+
const PLAYER_CONTEXT_KEY = Symbol("player-context");
|
|
11
11
|
const initialState = {
|
|
12
12
|
videoElement: null,
|
|
13
13
|
player: null,
|
|
@@ -41,10 +41,10 @@ const initialState = {
|
|
|
41
41
|
export function createPlayerContext() {
|
|
42
42
|
const store = writable(initialState);
|
|
43
43
|
function setVideoElement(el) {
|
|
44
|
-
store.update(s => ({ ...s, videoElement: el }));
|
|
44
|
+
store.update((s) => ({ ...s, videoElement: el }));
|
|
45
45
|
}
|
|
46
46
|
function setPlayer(player) {
|
|
47
|
-
store.update(s => ({
|
|
47
|
+
store.update((s) => ({
|
|
48
48
|
...s,
|
|
49
49
|
player,
|
|
50
50
|
playerName: player?.capability.name ?? null,
|
|
@@ -52,13 +52,13 @@ export function createPlayerContext() {
|
|
|
52
52
|
}));
|
|
53
53
|
}
|
|
54
54
|
function setSource(type, url) {
|
|
55
|
-
store.update(s => ({ ...s, sourceType: type, sourceUrl: url }));
|
|
55
|
+
store.update((s) => ({ ...s, sourceType: type, sourceUrl: url }));
|
|
56
56
|
}
|
|
57
57
|
function setStreamInfo(info) {
|
|
58
|
-
store.update(s => ({ ...s, streamInfo: info }));
|
|
58
|
+
store.update((s) => ({ ...s, streamInfo: info }));
|
|
59
59
|
}
|
|
60
60
|
function setReady(ready) {
|
|
61
|
-
store.update(s => ({ ...s, isReady: ready }));
|
|
61
|
+
store.update((s) => ({ ...s, isReady: ready }));
|
|
62
62
|
}
|
|
63
63
|
function reset() {
|
|
64
64
|
store.set(initialState);
|
|
@@ -105,7 +105,7 @@ function createFallbackContext() {
|
|
|
105
105
|
function syncState() {
|
|
106
106
|
const player = globalPlayerManager.getCurrentPlayer();
|
|
107
107
|
const videoEl = player?.getVideoElement() ?? null;
|
|
108
|
-
store.update(s => ({
|
|
108
|
+
store.update((s) => ({
|
|
109
109
|
...s,
|
|
110
110
|
videoElement: videoEl,
|
|
111
111
|
player: player ?? null,
|
|
@@ -126,8 +126,8 @@ function createFallbackContext() {
|
|
|
126
126
|
// Initial sync
|
|
127
127
|
syncState();
|
|
128
128
|
// Subscribe to events
|
|
129
|
-
globalPlayerManager.on(
|
|
130
|
-
globalPlayerManager.on(
|
|
129
|
+
globalPlayerManager.on("playerInitialized", handleInitialized);
|
|
130
|
+
globalPlayerManager.on("selection-changed", handleSelectionChanged);
|
|
131
131
|
}
|
|
132
132
|
const unsubscribe = originalSubscribe(run, invalidate);
|
|
133
133
|
return () => {
|
|
@@ -135,8 +135,8 @@ function createFallbackContext() {
|
|
|
135
135
|
subscribers--;
|
|
136
136
|
if (subscribers === 0) {
|
|
137
137
|
// Unsubscribe from events
|
|
138
|
-
globalPlayerManager.off(
|
|
139
|
-
globalPlayerManager.off(
|
|
138
|
+
globalPlayerManager.off("playerInitialized", handleInitialized);
|
|
139
|
+
globalPlayerManager.off("selection-changed", handleSelectionChanged);
|
|
140
140
|
}
|
|
141
141
|
};
|
|
142
142
|
};
|
|
@@ -152,13 +152,13 @@ function createFallbackContext() {
|
|
|
152
152
|
}
|
|
153
153
|
// Convenience derived stores
|
|
154
154
|
export function createDerivedVideoElement(store) {
|
|
155
|
-
return derived(store, $state => $state.videoElement);
|
|
155
|
+
return derived(store, ($state) => $state.videoElement);
|
|
156
156
|
}
|
|
157
157
|
export function createDerivedIsReady(store) {
|
|
158
|
-
return derived(store, $state => $state.isReady);
|
|
158
|
+
return derived(store, ($state) => $state.isReady);
|
|
159
159
|
}
|
|
160
160
|
export function createDerivedPlayerInfo(store) {
|
|
161
|
-
return derived(store, $state => ({
|
|
161
|
+
return derived(store, ($state) => ({
|
|
162
162
|
name: $state.playerName,
|
|
163
163
|
shortname: $state.playerShortname,
|
|
164
164
|
}));
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Svelte store for PlayerController - wraps the core PlayerController
|
|
3
3
|
* for declarative usage in Svelte 5 components.
|
|
4
4
|
*/
|
|
5
|
-
import { type Readable } from
|
|
6
|
-
import { PlayerController, type PlayerControllerConfig, type PlayerState, type StreamState, type PlaybackQuality, type ContentEndpoints, type ContentMetadata } from
|
|
7
|
-
export interface PlayerControllerStoreConfig extends Omit<PlayerControllerConfig,
|
|
5
|
+
import { type Readable } from "svelte/store";
|
|
6
|
+
import { PlayerController, type PlayerControllerConfig, type PlayerState, type StreamState, type PlaybackQuality, type ContentEndpoints, type ContentMetadata, type ClassifiedError } from "@livepeer-frameworks/player-core";
|
|
7
|
+
export interface PlayerControllerStoreConfig extends Omit<PlayerControllerConfig, "playerManager"> {
|
|
8
8
|
/** Enable/disable the store */
|
|
9
9
|
enabled?: boolean;
|
|
10
10
|
}
|
|
@@ -35,6 +35,8 @@ export interface PlayerControllerState {
|
|
|
35
35
|
volume: number;
|
|
36
36
|
/** Error text */
|
|
37
37
|
error: string | null;
|
|
38
|
+
/** Error details for debugging */
|
|
39
|
+
errorDetails: ClassifiedError["details"] | null;
|
|
38
40
|
/** Is passive error */
|
|
39
41
|
isPassiveError: boolean;
|
|
40
42
|
/** Has playback ever started */
|
|
@@ -71,6 +73,11 @@ export interface PlayerControllerState {
|
|
|
71
73
|
playbackQuality: PlaybackQuality | null;
|
|
72
74
|
/** Subtitles enabled */
|
|
73
75
|
subtitlesEnabled: boolean;
|
|
76
|
+
/** Toast message to display (auto-dismisses) */
|
|
77
|
+
toast: {
|
|
78
|
+
message: string;
|
|
79
|
+
timestamp: number;
|
|
80
|
+
} | null;
|
|
74
81
|
}
|
|
75
82
|
export interface PlayerControllerStore extends Readable<PlayerControllerState> {
|
|
76
83
|
/** Get controller instance */
|
|
@@ -105,6 +112,8 @@ export interface PlayerControllerStore extends Readable<PlayerControllerState> {
|
|
|
105
112
|
toggleSubtitles: () => void;
|
|
106
113
|
/** Clear error */
|
|
107
114
|
clearError: () => void;
|
|
115
|
+
/** Dismiss toast notification */
|
|
116
|
+
dismissToast: () => void;
|
|
108
117
|
/** Retry playback */
|
|
109
118
|
retry: () => Promise<void>;
|
|
110
119
|
/** Reload player */
|
|
@@ -130,7 +139,7 @@ export interface PlayerControllerStore extends Readable<PlayerControllerState> {
|
|
|
130
139
|
forcePlayer?: string;
|
|
131
140
|
forceType?: string;
|
|
132
141
|
forceSource?: number;
|
|
133
|
-
playbackMode?:
|
|
142
|
+
playbackMode?: "auto" | "low-latency" | "quality" | "vod";
|
|
134
143
|
}) => Promise<void>;
|
|
135
144
|
}
|
|
136
145
|
/**
|