@livepeer-frameworks/player-react 0.1.0 → 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/README.md +7 -9
- package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +359 -0
- package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/cjs/assets/logomark.svg.js +8 -0
- package/dist/cjs/assets/logomark.svg.js.map +1 -0
- package/dist/cjs/components/DevModePanel.js +826 -0
- package/dist/cjs/components/DevModePanel.js.map +1 -0
- package/dist/cjs/components/DvdLogo.js +200 -0
- package/dist/cjs/components/DvdLogo.js.map +1 -0
- package/dist/cjs/components/Icons.js +439 -0
- package/dist/cjs/components/Icons.js.map +1 -0
- package/dist/cjs/components/IdleScreen.js +587 -0
- package/dist/cjs/components/IdleScreen.js.map +1 -0
- package/dist/cjs/components/LoadingScreen.js +523 -0
- package/dist/cjs/components/LoadingScreen.js.map +1 -0
- package/dist/cjs/components/Player.js +420 -0
- package/dist/cjs/components/Player.js.map +1 -0
- package/dist/cjs/components/PlayerControls.js +798 -0
- package/dist/cjs/components/PlayerControls.js.map +1 -0
- package/dist/cjs/components/PlayerErrorBoundary.js +80 -0
- package/dist/cjs/components/PlayerErrorBoundary.js.map +1 -0
- package/dist/cjs/components/SeekBar.js +253 -0
- package/dist/cjs/components/SeekBar.js.map +1 -0
- package/dist/cjs/components/SkipIndicator.js +92 -0
- package/dist/cjs/components/SkipIndicator.js.map +1 -0
- package/dist/cjs/components/SpeedIndicator.js +43 -0
- package/dist/cjs/components/SpeedIndicator.js.map +1 -0
- package/dist/cjs/components/StatsPanel.js +202 -0
- package/dist/cjs/components/StatsPanel.js.map +1 -0
- package/dist/cjs/components/StreamStateOverlay.js +229 -0
- package/dist/cjs/components/StreamStateOverlay.js.map +1 -0
- package/dist/cjs/components/ThumbnailOverlay.js +86 -0
- package/dist/cjs/components/ThumbnailOverlay.js.map +1 -0
- package/dist/cjs/components/TitleOverlay.js +32 -0
- package/dist/cjs/components/TitleOverlay.js.map +1 -0
- package/dist/cjs/context/PlayerContext.js +46 -0
- package/dist/cjs/context/PlayerContext.js.map +1 -0
- package/dist/cjs/hooks/useMetaTrack.js +165 -0
- package/dist/cjs/hooks/useMetaTrack.js.map +1 -0
- package/dist/cjs/hooks/usePlaybackQuality.js +131 -0
- package/dist/cjs/hooks/usePlaybackQuality.js.map +1 -0
- package/dist/cjs/hooks/usePlayerController.js +518 -0
- package/dist/cjs/hooks/usePlayerController.js.map +1 -0
- package/dist/cjs/hooks/usePlayerSelection.js +90 -0
- package/dist/cjs/hooks/usePlayerSelection.js.map +1 -0
- package/dist/cjs/hooks/useStreamState.js +360 -0
- package/dist/cjs/hooks/useStreamState.js.map +1 -0
- package/dist/cjs/hooks/useTelemetry.js +120 -0
- package/dist/cjs/hooks/useTelemetry.js.map +1 -0
- package/dist/cjs/hooks/useViewerEndpoints.js +222 -0
- package/dist/cjs/hooks/useViewerEndpoints.js.map +1 -0
- package/dist/cjs/index.js +97 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/ui/badge.js +34 -0
- package/dist/cjs/ui/badge.js.map +1 -0
- package/dist/cjs/ui/button.js +74 -0
- package/dist/cjs/ui/button.js.map +1 -0
- package/dist/cjs/ui/context-menu.js +163 -0
- package/dist/cjs/ui/context-menu.js.map +1 -0
- package/dist/cjs/ui/slider.js +60 -0
- package/dist/cjs/ui/slider.js.map +1 -0
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +329 -0
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/esm/assets/logomark.svg.js +4 -0
- package/dist/esm/assets/logomark.svg.js.map +1 -0
- package/dist/esm/components/DevModePanel.js +822 -0
- package/dist/esm/components/DevModePanel.js.map +1 -0
- package/dist/esm/components/DvdLogo.js +196 -0
- package/dist/esm/components/DvdLogo.js.map +1 -0
- package/dist/esm/components/Icons.js +421 -0
- package/dist/esm/components/Icons.js.map +1 -0
- package/dist/esm/components/IdleScreen.js +582 -0
- package/dist/esm/components/IdleScreen.js.map +1 -0
- package/dist/esm/components/LoadingScreen.js +519 -0
- package/dist/esm/components/LoadingScreen.js.map +1 -0
- package/dist/esm/components/Player.js +416 -0
- package/dist/esm/components/Player.js.map +1 -0
- package/dist/esm/components/PlayerControls.js +794 -0
- package/dist/esm/components/PlayerControls.js.map +1 -0
- package/dist/esm/components/PlayerErrorBoundary.js +76 -0
- package/dist/esm/components/PlayerErrorBoundary.js.map +1 -0
- package/dist/esm/components/SeekBar.js +249 -0
- package/dist/esm/components/SeekBar.js.map +1 -0
- package/dist/esm/components/SkipIndicator.js +88 -0
- package/dist/esm/components/SkipIndicator.js.map +1 -0
- package/dist/esm/components/SpeedIndicator.js +39 -0
- package/dist/esm/components/SpeedIndicator.js.map +1 -0
- package/dist/esm/components/StatsPanel.js +198 -0
- package/dist/esm/components/StatsPanel.js.map +1 -0
- package/dist/esm/components/StreamStateOverlay.js +224 -0
- package/dist/esm/components/StreamStateOverlay.js.map +1 -0
- package/dist/esm/components/ThumbnailOverlay.js +82 -0
- package/dist/esm/components/ThumbnailOverlay.js.map +1 -0
- package/dist/esm/components/TitleOverlay.js +28 -0
- package/dist/esm/components/TitleOverlay.js.map +1 -0
- package/dist/esm/context/PlayerContext.js +41 -0
- package/dist/esm/context/PlayerContext.js.map +1 -0
- package/dist/esm/hooks/useMetaTrack.js +163 -0
- package/dist/esm/hooks/useMetaTrack.js.map +1 -0
- package/dist/esm/hooks/usePlaybackQuality.js +129 -0
- package/dist/esm/hooks/usePlaybackQuality.js.map +1 -0
- package/dist/esm/hooks/usePlayerController.js +516 -0
- package/dist/esm/hooks/usePlayerController.js.map +1 -0
- package/dist/esm/hooks/usePlayerSelection.js +88 -0
- package/dist/esm/hooks/usePlayerSelection.js.map +1 -0
- package/dist/esm/hooks/useStreamState.js +358 -0
- package/dist/esm/hooks/useStreamState.js.map +1 -0
- package/dist/esm/hooks/useTelemetry.js +118 -0
- package/dist/esm/hooks/useTelemetry.js.map +1 -0
- package/dist/esm/hooks/useViewerEndpoints.js +220 -0
- package/dist/esm/hooks/useViewerEndpoints.js.map +1 -0
- package/dist/esm/index.js +23 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ui/badge.js +31 -0
- package/dist/esm/ui/badge.js.map +1 -0
- package/dist/esm/ui/button.js +52 -0
- package/dist/esm/ui/button.js.map +1 -0
- package/dist/esm/ui/context-menu.js +132 -0
- package/dist/esm/ui/context-menu.js.map +1 -0
- package/dist/esm/ui/slider.js +38 -0
- package/dist/esm/ui/slider.js.map +1 -0
- package/dist/types/components/DvdLogo.d.ts +1 -1
- package/dist/types/components/Icons.d.ts +1 -1
- package/dist/types/components/Player.d.ts +1 -1
- package/dist/types/components/PlayerErrorBoundary.d.ts +2 -1
- package/dist/types/components/StreamStateOverlay.d.ts +2 -2
- package/dist/types/components/SubtitleRenderer.d.ts +2 -2
- package/dist/types/context/PlayerContext.d.ts +2 -2
- package/dist/types/context/index.d.ts +2 -2
- package/dist/types/hooks/useMetaTrack.d.ts +3 -3
- package/dist/types/hooks/usePlaybackQuality.d.ts +2 -2
- package/dist/types/hooks/usePlayerController.d.ts +26 -3
- package/dist/types/hooks/usePlayerSelection.d.ts +1 -1
- package/dist/types/hooks/useStreamState.d.ts +1 -1
- package/dist/types/hooks/useTelemetry.d.ts +1 -1
- package/dist/types/hooks/useViewerEndpoints.d.ts +3 -3
- package/dist/types/index.d.ts +28 -28
- package/dist/types/types.d.ts +3 -3
- package/dist/types/ui/select.d.ts +1 -1
- package/package.json +22 -14
- package/src/components/DevModePanel.tsx +244 -143
- package/src/components/DvdLogo.tsx +1 -1
- package/src/components/Icons.tsx +105 -25
- package/src/components/IdleScreen.tsx +262 -128
- package/src/components/LoadingScreen.tsx +169 -151
- package/src/components/LogoOverlay.tsx +3 -6
- package/src/components/Player.tsx +126 -59
- package/src/components/PlayerControls.tsx +384 -272
- package/src/components/PlayerErrorBoundary.tsx +7 -13
- package/src/components/SeekBar.tsx +96 -88
- package/src/components/SkipIndicator.tsx +2 -12
- package/src/components/SpeedIndicator.tsx +2 -11
- package/src/components/StatsPanel.tsx +31 -22
- package/src/components/StreamStateOverlay.tsx +105 -49
- package/src/components/SubtitleRenderer.tsx +29 -29
- package/src/components/ThumbnailOverlay.tsx +5 -6
- package/src/components/TitleOverlay.tsx +2 -8
- package/src/context/PlayerContext.tsx +4 -8
- package/src/context/index.ts +3 -3
- package/src/hooks/useMetaTrack.ts +27 -27
- package/src/hooks/usePlaybackQuality.ts +3 -3
- package/src/hooks/usePlayerController.ts +246 -138
- package/src/hooks/usePlayerSelection.ts +6 -6
- package/src/hooks/useStreamState.ts +51 -56
- package/src/hooks/useTelemetry.ts +18 -3
- package/src/hooks/useViewerEndpoints.ts +34 -23
- package/src/index.tsx +36 -28
- package/src/types.ts +8 -8
- package/src/ui/badge.tsx +6 -5
- package/src/ui/button.tsx +9 -8
- package/src/ui/context-menu.tsx +42 -61
- package/src/ui/select.tsx +13 -7
- package/src/ui/slider.tsx +18 -29
- package/dist/types/components/players/DashJsPlayer.d.ts +0 -18
- package/dist/types/components/players/HlsJsPlayer.d.ts +0 -18
- package/dist/types/components/players/MewsWsPlayer/index.d.ts +0 -18
- package/dist/types/components/players/MistPlayer.d.ts +0 -20
- package/dist/types/components/players/MistWebRTCPlayer/index.d.ts +0 -20
- package/dist/types/components/players/NativePlayer.d.ts +0 -19
- package/dist/types/components/players/VideoJsPlayer.d.ts +0 -18
- package/src/components/players/DashJsPlayer.tsx +0 -56
- package/src/components/players/HlsJsPlayer.tsx +0 -56
- package/src/components/players/MewsWsPlayer/index.tsx +0 -56
- package/src/components/players/MistPlayer.tsx +0 -60
- package/src/components/players/MistWebRTCPlayer/index.tsx +0 -59
- package/src/components/players/NativePlayer.tsx +0 -58
- package/src/components/players/VideoJsPlayer.tsx +0 -56
|
@@ -1,59 +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.initialize(
|
|
43
|
-
containerRef.current,
|
|
44
|
-
{ url: src, type: 'webrtc' },
|
|
45
|
-
{ autoplay: autoPlay, muted, controls, poster, onReady, onError: (e) => onError?.(typeof e === 'string' ? new Error(e) : e) }
|
|
46
|
-
).catch((e) => {
|
|
47
|
-
onError?.(e instanceof Error ? e : new Error(String(e)));
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
return () => {
|
|
51
|
-
player.destroy();
|
|
52
|
-
playerRef.current = null;
|
|
53
|
-
};
|
|
54
|
-
}, [src, autoPlay, muted, controls, poster, onReady, onError]);
|
|
55
|
-
|
|
56
|
-
return <div ref={containerRef} style={{ width: '100%', height: '100%' }} />;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export default MistWebRTCPlayerImpl;
|
|
@@ -1,58 +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.initialize(
|
|
42
|
-
containerRef.current,
|
|
43
|
-
{ url: src, type },
|
|
44
|
-
{ autoplay: autoPlay, muted, controls }
|
|
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, type, muted, autoPlay, controls, onError]);
|
|
54
|
-
|
|
55
|
-
return <div ref={containerRef} style={{ width: '100%', height: '100%' }} />;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default NativePlayer;
|
|
@@ -1,56 +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.initialize(
|
|
40
|
-
containerRef.current,
|
|
41
|
-
{ url: src, type: 'html5/application/vnd.apple.mpegurl' },
|
|
42
|
-
{ 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, muted, autoPlay, controls, onError]);
|
|
52
|
-
|
|
53
|
-
return <div ref={containerRef} style={{ width: '100%', height: '100%' }} />;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export default VideoJsPlayer;
|