@livepeer-frameworks/player-react 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.
Files changed (158) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +359 -0
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/dist/cjs/assets/logomark.svg.js +8 -0
  4. package/dist/cjs/assets/logomark.svg.js.map +1 -0
  5. package/dist/cjs/components/DevModePanel.js +826 -0
  6. package/dist/cjs/components/DevModePanel.js.map +1 -0
  7. package/dist/cjs/components/DvdLogo.js +200 -0
  8. package/dist/cjs/components/DvdLogo.js.map +1 -0
  9. package/dist/cjs/components/Icons.js +439 -0
  10. package/dist/cjs/components/Icons.js.map +1 -0
  11. package/dist/cjs/components/IdleScreen.js +587 -0
  12. package/dist/cjs/components/IdleScreen.js.map +1 -0
  13. package/dist/cjs/components/LoadingScreen.js +523 -0
  14. package/dist/cjs/components/LoadingScreen.js.map +1 -0
  15. package/dist/cjs/components/Player.js +420 -0
  16. package/dist/cjs/components/Player.js.map +1 -0
  17. package/dist/cjs/components/PlayerControls.js +798 -0
  18. package/dist/cjs/components/PlayerControls.js.map +1 -0
  19. package/dist/cjs/components/PlayerErrorBoundary.js +80 -0
  20. package/dist/cjs/components/PlayerErrorBoundary.js.map +1 -0
  21. package/dist/cjs/components/SeekBar.js +253 -0
  22. package/dist/cjs/components/SeekBar.js.map +1 -0
  23. package/dist/cjs/components/SkipIndicator.js +92 -0
  24. package/dist/cjs/components/SkipIndicator.js.map +1 -0
  25. package/dist/cjs/components/SpeedIndicator.js +43 -0
  26. package/dist/cjs/components/SpeedIndicator.js.map +1 -0
  27. package/dist/cjs/components/StatsPanel.js +202 -0
  28. package/dist/cjs/components/StatsPanel.js.map +1 -0
  29. package/dist/cjs/components/StreamStateOverlay.js +229 -0
  30. package/dist/cjs/components/StreamStateOverlay.js.map +1 -0
  31. package/dist/cjs/components/ThumbnailOverlay.js +86 -0
  32. package/dist/cjs/components/ThumbnailOverlay.js.map +1 -0
  33. package/dist/cjs/components/TitleOverlay.js +32 -0
  34. package/dist/cjs/components/TitleOverlay.js.map +1 -0
  35. package/dist/cjs/context/PlayerContext.js +46 -0
  36. package/dist/cjs/context/PlayerContext.js.map +1 -0
  37. package/dist/cjs/hooks/useMetaTrack.js +165 -0
  38. package/dist/cjs/hooks/useMetaTrack.js.map +1 -0
  39. package/dist/cjs/hooks/usePlaybackQuality.js +131 -0
  40. package/dist/cjs/hooks/usePlaybackQuality.js.map +1 -0
  41. package/dist/cjs/hooks/usePlayerController.js +518 -0
  42. package/dist/cjs/hooks/usePlayerController.js.map +1 -0
  43. package/dist/cjs/hooks/usePlayerSelection.js +90 -0
  44. package/dist/cjs/hooks/usePlayerSelection.js.map +1 -0
  45. package/dist/cjs/hooks/useStreamState.js +360 -0
  46. package/dist/cjs/hooks/useStreamState.js.map +1 -0
  47. package/dist/cjs/hooks/useTelemetry.js +120 -0
  48. package/dist/cjs/hooks/useTelemetry.js.map +1 -0
  49. package/dist/cjs/hooks/useViewerEndpoints.js +222 -0
  50. package/dist/cjs/hooks/useViewerEndpoints.js.map +1 -0
  51. package/dist/cjs/index.js +97 -1
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/ui/badge.js +34 -0
  54. package/dist/cjs/ui/badge.js.map +1 -0
  55. package/dist/cjs/ui/button.js +74 -0
  56. package/dist/cjs/ui/button.js.map +1 -0
  57. package/dist/cjs/ui/context-menu.js +163 -0
  58. package/dist/cjs/ui/context-menu.js.map +1 -0
  59. package/dist/cjs/ui/slider.js +60 -0
  60. package/dist/cjs/ui/slider.js.map +1 -0
  61. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +329 -0
  62. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  63. package/dist/esm/assets/logomark.svg.js +4 -0
  64. package/dist/esm/assets/logomark.svg.js.map +1 -0
  65. package/dist/esm/components/DevModePanel.js +822 -0
  66. package/dist/esm/components/DevModePanel.js.map +1 -0
  67. package/dist/esm/components/DvdLogo.js +196 -0
  68. package/dist/esm/components/DvdLogo.js.map +1 -0
  69. package/dist/esm/components/Icons.js +421 -0
  70. package/dist/esm/components/Icons.js.map +1 -0
  71. package/dist/esm/components/IdleScreen.js +582 -0
  72. package/dist/esm/components/IdleScreen.js.map +1 -0
  73. package/dist/esm/components/LoadingScreen.js +519 -0
  74. package/dist/esm/components/LoadingScreen.js.map +1 -0
  75. package/dist/esm/components/Player.js +416 -0
  76. package/dist/esm/components/Player.js.map +1 -0
  77. package/dist/esm/components/PlayerControls.js +794 -0
  78. package/dist/esm/components/PlayerControls.js.map +1 -0
  79. package/dist/esm/components/PlayerErrorBoundary.js +76 -0
  80. package/dist/esm/components/PlayerErrorBoundary.js.map +1 -0
  81. package/dist/esm/components/SeekBar.js +249 -0
  82. package/dist/esm/components/SeekBar.js.map +1 -0
  83. package/dist/esm/components/SkipIndicator.js +88 -0
  84. package/dist/esm/components/SkipIndicator.js.map +1 -0
  85. package/dist/esm/components/SpeedIndicator.js +39 -0
  86. package/dist/esm/components/SpeedIndicator.js.map +1 -0
  87. package/dist/esm/components/StatsPanel.js +198 -0
  88. package/dist/esm/components/StatsPanel.js.map +1 -0
  89. package/dist/esm/components/StreamStateOverlay.js +224 -0
  90. package/dist/esm/components/StreamStateOverlay.js.map +1 -0
  91. package/dist/esm/components/ThumbnailOverlay.js +82 -0
  92. package/dist/esm/components/ThumbnailOverlay.js.map +1 -0
  93. package/dist/esm/components/TitleOverlay.js +28 -0
  94. package/dist/esm/components/TitleOverlay.js.map +1 -0
  95. package/dist/esm/context/PlayerContext.js +41 -0
  96. package/dist/esm/context/PlayerContext.js.map +1 -0
  97. package/dist/esm/hooks/useMetaTrack.js +163 -0
  98. package/dist/esm/hooks/useMetaTrack.js.map +1 -0
  99. package/dist/esm/hooks/usePlaybackQuality.js +129 -0
  100. package/dist/esm/hooks/usePlaybackQuality.js.map +1 -0
  101. package/dist/esm/hooks/usePlayerController.js +516 -0
  102. package/dist/esm/hooks/usePlayerController.js.map +1 -0
  103. package/dist/esm/hooks/usePlayerSelection.js +88 -0
  104. package/dist/esm/hooks/usePlayerSelection.js.map +1 -0
  105. package/dist/esm/hooks/useStreamState.js +358 -0
  106. package/dist/esm/hooks/useStreamState.js.map +1 -0
  107. package/dist/esm/hooks/useTelemetry.js +118 -0
  108. package/dist/esm/hooks/useTelemetry.js.map +1 -0
  109. package/dist/esm/hooks/useViewerEndpoints.js +220 -0
  110. package/dist/esm/hooks/useViewerEndpoints.js.map +1 -0
  111. package/dist/esm/index.js +23 -1
  112. package/dist/esm/index.js.map +1 -1
  113. package/dist/esm/ui/badge.js +31 -0
  114. package/dist/esm/ui/badge.js.map +1 -0
  115. package/dist/esm/ui/button.js +52 -0
  116. package/dist/esm/ui/button.js.map +1 -0
  117. package/dist/esm/ui/context-menu.js +132 -0
  118. package/dist/esm/ui/context-menu.js.map +1 -0
  119. package/dist/esm/ui/slider.js +38 -0
  120. package/dist/esm/ui/slider.js.map +1 -0
  121. package/dist/types/components/DvdLogo.d.ts +1 -1
  122. package/dist/types/components/Icons.d.ts +1 -1
  123. package/dist/types/components/Player.d.ts +1 -1
  124. package/dist/types/components/PlayerErrorBoundary.d.ts +2 -1
  125. package/dist/types/components/StreamStateOverlay.d.ts +2 -2
  126. package/dist/types/components/SubtitleRenderer.d.ts +2 -2
  127. package/dist/types/context/PlayerContext.d.ts +2 -2
  128. package/dist/types/context/index.d.ts +2 -2
  129. package/dist/types/hooks/useMetaTrack.d.ts +3 -3
  130. package/dist/types/hooks/usePlaybackQuality.d.ts +2 -2
  131. package/dist/types/hooks/usePlayerController.d.ts +26 -3
  132. package/dist/types/hooks/usePlayerSelection.d.ts +1 -1
  133. package/dist/types/hooks/useStreamState.d.ts +1 -1
  134. package/dist/types/hooks/useTelemetry.d.ts +1 -1
  135. package/dist/types/hooks/useViewerEndpoints.d.ts +3 -3
  136. package/dist/types/index.d.ts +28 -28
  137. package/dist/types/types.d.ts +3 -3
  138. package/dist/types/ui/select.d.ts +1 -1
  139. package/package.json +22 -14
  140. package/src/components/DvdLogo.tsx +1 -1
  141. package/src/components/Player.tsx +42 -3
  142. package/src/components/PlayerControls.tsx +36 -17
  143. package/src/components/PlayerErrorBoundary.tsx +2 -1
  144. package/src/hooks/usePlayerController.ts +61 -1
  145. package/dist/types/components/players/DashJsPlayer.d.ts +0 -18
  146. package/dist/types/components/players/HlsJsPlayer.d.ts +0 -18
  147. package/dist/types/components/players/MewsWsPlayer/index.d.ts +0 -18
  148. package/dist/types/components/players/MistPlayer.d.ts +0 -20
  149. package/dist/types/components/players/MistWebRTCPlayer/index.d.ts +0 -20
  150. package/dist/types/components/players/NativePlayer.d.ts +0 -19
  151. package/dist/types/components/players/VideoJsPlayer.d.ts +0 -18
  152. package/src/components/players/DashJsPlayer.tsx +0 -58
  153. package/src/components/players/HlsJsPlayer.tsx +0 -58
  154. package/src/components/players/MewsWsPlayer/index.tsx +0 -58
  155. package/src/components/players/MistPlayer.tsx +0 -62
  156. package/src/components/players/MistWebRTCPlayer/index.tsx +0 -68
  157. package/src/components/players/NativePlayer.tsx +0 -56
  158. package/src/components/players/VideoJsPlayer.tsx +0 -58
@@ -1,58 +0,0 @@
1
- /**
2
- * MEWS WebSocket Player - React Wrapper
3
- *
4
- * Low-latency WebSocket MP4 streaming using MediaSource Extensions.
5
- * The implementation is in @livepeer-frameworks/player-core.
6
- */
7
-
8
- import React, { useEffect, useRef } from "react";
9
- import { MewsWsPlayerImpl } from "@livepeer-frameworks/player-core";
10
-
11
- // Re-export the implementation from core for backwards compatibility
12
- export { MewsWsPlayerImpl };
13
-
14
- type Props = {
15
- wsUrl: string;
16
- muted?: boolean;
17
- autoPlay?: boolean;
18
- controls?: boolean;
19
- onError?: (e: Error) => void;
20
- };
21
-
22
- // React component wrapper
23
- const MewsWsPlayer: React.FC<Props> = ({
24
- wsUrl,
25
- muted = true,
26
- autoPlay = true,
27
- controls = true,
28
- onError,
29
- }) => {
30
- const containerRef = useRef<HTMLDivElement>(null);
31
- const playerRef = useRef<MewsWsPlayerImpl | null>(null);
32
-
33
- useEffect(() => {
34
- if (!containerRef.current) return;
35
-
36
- const player = new MewsWsPlayerImpl();
37
- playerRef.current = player;
38
-
39
- player
40
- .initialize(
41
- containerRef.current,
42
- { url: wsUrl, type: "ws/video/mp4" },
43
- { autoplay: autoPlay, muted, controls }
44
- )
45
- .catch((e) => {
46
- onError?.(e instanceof Error ? e : new Error(String(e)));
47
- });
48
-
49
- return () => {
50
- player.destroy();
51
- playerRef.current = null;
52
- };
53
- }, [wsUrl, muted, autoPlay, controls, onError]);
54
-
55
- return <div ref={containerRef} style={{ width: "100%", height: "100%" }} />;
56
- };
57
-
58
- export default MewsWsPlayer;
@@ -1,62 +0,0 @@
1
- /**
2
- * MistServer Legacy Player - React Wrapper
3
- *
4
- * Fallback player using MistServer's native player.js.
5
- * The implementation is in @livepeer-frameworks/player-core.
6
- */
7
-
8
- import React, { useEffect, useRef } from "react";
9
- import { MistPlayerImpl } from "@livepeer-frameworks/player-core";
10
-
11
- // Re-export the implementation from core for backwards compatibility
12
- export { MistPlayerImpl };
13
-
14
- type Props = {
15
- src: string;
16
- streamName?: string;
17
- muted?: boolean;
18
- autoPlay?: boolean;
19
- controls?: boolean;
20
- devMode?: boolean;
21
- onError?: (e: Error) => void;
22
- };
23
-
24
- // React component wrapper
25
- const MistPlayer: React.FC<Props> = ({
26
- src,
27
- streamName,
28
- muted = true,
29
- autoPlay = true,
30
- controls = true,
31
- devMode = false,
32
- onError,
33
- }) => {
34
- const containerRef = useRef<HTMLDivElement>(null);
35
- const playerRef = useRef<MistPlayerImpl | null>(null);
36
-
37
- useEffect(() => {
38
- if (!containerRef.current) return;
39
-
40
- const player = new MistPlayerImpl();
41
- playerRef.current = player;
42
-
43
- player
44
- .initialize(
45
- containerRef.current,
46
- { url: src, type: "mist/legacy", streamName },
47
- { autoplay: autoPlay, muted, controls, devMode }
48
- )
49
- .catch((e) => {
50
- onError?.(e instanceof Error ? e : new Error(String(e)));
51
- });
52
-
53
- return () => {
54
- player.destroy();
55
- playerRef.current = null;
56
- };
57
- }, [src, streamName, muted, autoPlay, controls, devMode, onError]);
58
-
59
- return <div ref={containerRef} style={{ width: "100%", height: "100%" }} />;
60
- };
61
-
62
- export default MistPlayer;
@@ -1,68 +0,0 @@
1
- /**
2
- * MistWebRTC Player - React Wrapper
3
- *
4
- * MistServer native WebRTC with signaling for DVR support.
5
- * The implementation is in @livepeer-frameworks/player-core.
6
- */
7
-
8
- import React, { useRef, useEffect } from "react";
9
- import { MistWebRTCPlayerImpl } from "@livepeer-frameworks/player-core";
10
-
11
- // Re-export the implementation from core for backwards compatibility
12
- export { MistWebRTCPlayerImpl };
13
-
14
- interface Props {
15
- src: string;
16
- autoPlay?: boolean;
17
- muted?: boolean;
18
- controls?: boolean;
19
- poster?: string;
20
- onReady?: (video: HTMLVideoElement) => void;
21
- onError?: (error: Error) => void;
22
- }
23
-
24
- export const MistWebRTCPlayer: React.FC<Props> = ({
25
- src,
26
- autoPlay = true,
27
- muted = true,
28
- controls = true,
29
- poster,
30
- onReady,
31
- onError,
32
- }) => {
33
- const containerRef = useRef<HTMLDivElement>(null);
34
- const playerRef = useRef<MistWebRTCPlayerImpl | null>(null);
35
-
36
- useEffect(() => {
37
- if (!containerRef.current) return;
38
-
39
- const player = new MistWebRTCPlayerImpl();
40
- playerRef.current = player;
41
-
42
- player
43
- .initialize(
44
- containerRef.current,
45
- { url: src, type: "webrtc" },
46
- {
47
- autoplay: autoPlay,
48
- muted,
49
- controls,
50
- poster,
51
- onReady,
52
- onError: (e) => onError?.(typeof e === "string" ? new Error(e) : e),
53
- }
54
- )
55
- .catch((e) => {
56
- onError?.(e instanceof Error ? e : new Error(String(e)));
57
- });
58
-
59
- return () => {
60
- player.destroy();
61
- playerRef.current = null;
62
- };
63
- }, [src, autoPlay, muted, controls, poster, onReady, onError]);
64
-
65
- return <div ref={containerRef} style={{ width: "100%", height: "100%" }} />;
66
- };
67
-
68
- export default MistWebRTCPlayerImpl;
@@ -1,56 +0,0 @@
1
- /**
2
- * Native Player - React Wrapper
3
- *
4
- * HTML5 video and WHEP WebRTC playback.
5
- * The implementation is in @livepeer-frameworks/player-core.
6
- */
7
-
8
- import React, { useEffect, useRef } from "react";
9
- import { NativePlayerImpl, DirectPlaybackPlayerImpl } from "@livepeer-frameworks/player-core";
10
-
11
- // Re-export the implementations from core for backwards compatibility
12
- export { NativePlayerImpl, DirectPlaybackPlayerImpl };
13
-
14
- type Props = {
15
- src: string;
16
- type?: string;
17
- muted?: boolean;
18
- autoPlay?: boolean;
19
- controls?: boolean;
20
- onError?: (e: Error) => void;
21
- };
22
-
23
- // React component wrapper
24
- const NativePlayer: React.FC<Props> = ({
25
- src,
26
- type = "html5/video/mp4",
27
- muted = true,
28
- autoPlay = true,
29
- controls = true,
30
- onError,
31
- }) => {
32
- const containerRef = useRef<HTMLDivElement>(null);
33
- const playerRef = useRef<NativePlayerImpl | null>(null);
34
-
35
- useEffect(() => {
36
- if (!containerRef.current) return;
37
-
38
- const player = new NativePlayerImpl();
39
- playerRef.current = player;
40
-
41
- player
42
- .initialize(containerRef.current, { url: src, type }, { autoplay: autoPlay, muted, controls })
43
- .catch((e) => {
44
- onError?.(e instanceof Error ? e : new Error(String(e)));
45
- });
46
-
47
- return () => {
48
- player.destroy();
49
- playerRef.current = null;
50
- };
51
- }, [src, type, muted, autoPlay, controls, onError]);
52
-
53
- return <div ref={containerRef} style={{ width: "100%", height: "100%" }} />;
54
- };
55
-
56
- export default NativePlayer;
@@ -1,58 +0,0 @@
1
- /**
2
- * Video.js Player - React Wrapper
3
- *
4
- * HLS streaming via Video.js with VHS (videojs-http-streaming).
5
- * The implementation is in @livepeer-frameworks/player-core.
6
- */
7
-
8
- import React, { useEffect, useRef } from "react";
9
- import { VideoJsPlayerImpl } from "@livepeer-frameworks/player-core";
10
-
11
- // Re-export the implementation from core for backwards compatibility
12
- export { VideoJsPlayerImpl };
13
-
14
- type Props = {
15
- src: string;
16
- muted?: boolean;
17
- autoPlay?: boolean;
18
- controls?: boolean;
19
- onError?: (e: Error) => void;
20
- };
21
-
22
- // React component wrapper
23
- const VideoJsPlayer: React.FC<Props> = ({
24
- src,
25
- muted = true,
26
- autoPlay = true,
27
- controls = true,
28
- onError,
29
- }) => {
30
- const containerRef = useRef<HTMLDivElement>(null);
31
- const playerRef = useRef<VideoJsPlayerImpl | null>(null);
32
-
33
- useEffect(() => {
34
- if (!containerRef.current) return;
35
-
36
- const player = new VideoJsPlayerImpl();
37
- playerRef.current = player;
38
-
39
- player
40
- .initialize(
41
- containerRef.current,
42
- { url: src, type: "html5/application/vnd.apple.mpegurl" },
43
- { autoplay: autoPlay, muted, controls }
44
- )
45
- .catch((e) => {
46
- onError?.(e instanceof Error ? e : new Error(String(e)));
47
- });
48
-
49
- return () => {
50
- player.destroy();
51
- playerRef.current = null;
52
- };
53
- }, [src, muted, autoPlay, controls, onError]);
54
-
55
- return <div ref={containerRef} style={{ width: "100%", height: "100%" }} />;
56
- };
57
-
58
- export default VideoJsPlayer;