@xrift/world-components 0.21.1 → 0.21.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/components/LiveVideoPlayer/ControlPanel.d.ts +1 -1
- package/dist/components/LiveVideoPlayer/ControlPanel.d.ts.map +1 -1
- package/dist/components/LiveVideoPlayer/ControlPanel.js +3 -2
- package/dist/components/LiveVideoPlayer/ControlPanel.js.map +1 -1
- package/dist/components/LiveVideoPlayer/LiveIndicator.d.ts +2 -2
- package/dist/components/LiveVideoPlayer/LiveIndicator.d.ts.map +1 -1
- package/dist/components/LiveVideoPlayer/LiveIndicator.js +6 -5
- package/dist/components/LiveVideoPlayer/LiveIndicator.js.map +1 -1
- package/dist/components/LiveVideoPlayer/ReloadButton.d.ts +3 -0
- package/dist/components/LiveVideoPlayer/ReloadButton.d.ts.map +1 -0
- package/dist/components/LiveVideoPlayer/ReloadButton.js +9 -0
- package/dist/components/LiveVideoPlayer/ReloadButton.js.map +1 -0
- package/dist/components/LiveVideoPlayer/index.d.ts +2 -2
- package/dist/components/LiveVideoPlayer/index.d.ts.map +1 -1
- package/dist/components/LiveVideoPlayer/index.js +26 -21
- package/dist/components/LiveVideoPlayer/index.js.map +1 -1
- package/dist/components/LiveVideoPlayer/types.d.ts +9 -1
- package/dist/components/LiveVideoPlayer/types.d.ts.map +1 -1
- package/dist/components/ScreenShareDisplay/index.js +1 -1
- package/dist/components/ScreenShareDisplay/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LiveControlPanelProps } from './types';
|
|
2
|
-
export declare const ControlPanel: import("react").MemoExoticComponent<({ id, width, screenHeight, playing, volume, isBuffering, currentUrl, onPlayPause, onVolumeChange, onUrlChange, }: LiveControlPanelProps) => import("react/jsx-runtime").JSX.Element>;
|
|
2
|
+
export declare const ControlPanel: import("react").MemoExoticComponent<({ id, width, screenHeight, playing, volume, isBuffering, currentUrl, onPlayPause, onVolumeChange, onUrlChange, onReload, }: LiveControlPanelProps) => import("react/jsx-runtime").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=ControlPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/ControlPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/ControlPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAKpD,eAAO,MAAM,YAAY,mKAapB,qBAAqB,6CAiEzB,CAAA"}
|
|
@@ -5,12 +5,13 @@ import { PlayPauseButton } from './PlayPauseButton';
|
|
|
5
5
|
import { VolumeControl } from './VolumeControl';
|
|
6
6
|
import { LiveIndicator } from './LiveIndicator';
|
|
7
7
|
import { UrlInputButton } from './UrlInputButton';
|
|
8
|
+
import { ReloadButton } from './ReloadButton';
|
|
8
9
|
const PANEL_HEIGHT = 0.15;
|
|
9
10
|
const BUTTON_SIZE_RATIO = 0.6;
|
|
10
|
-
export const ControlPanel = memo(({ id, width, screenHeight, playing, volume, isBuffering, currentUrl, onPlayPause, onVolumeChange, onUrlChange, }) => {
|
|
11
|
+
export const ControlPanel = memo(({ id, width, screenHeight, playing, volume, isBuffering, currentUrl, onPlayPause, onVolumeChange, onUrlChange, onReload, }) => {
|
|
11
12
|
const panelY = -screenHeight / 2 - PANEL_HEIGHT / 2;
|
|
12
13
|
const buttonSize = PANEL_HEIGHT * BUTTON_SIZE_RATIO;
|
|
13
|
-
return (_jsxs("group", { position: [0, panelY, 0], children: [_jsxs("mesh", { position: [0, 0, 0], children: [_jsx("planeGeometry", { args: [width, PANEL_HEIGHT] }), _jsx("meshBasicMaterial", { color: "#1a1a2a", transparent: true, opacity: 0.9 })] }), _jsx(UrlInputButton, { id: `${id}-url-input`, position: [-width * 0.45, 0, 0.01], size: buttonSize, currentUrl: currentUrl, onUrlChange: onUrlChange }), _jsx(PlayPauseButton, { id: `${id}-play-pause`, position: [-width * 0.
|
|
14
|
+
return (_jsxs("group", { position: [0, panelY, 0], children: [_jsxs("mesh", { position: [0, 0, 0], children: [_jsx("planeGeometry", { args: [width, PANEL_HEIGHT] }), _jsx("meshBasicMaterial", { color: "#1a1a2a", transparent: true, opacity: 0.9 })] }), _jsx(UrlInputButton, { id: `${id}-url-input`, position: [-width * 0.45, 0, 0.01], size: buttonSize, currentUrl: currentUrl, onUrlChange: onUrlChange }), _jsx(ReloadButton, { id: `${id}-reload`, position: [-width * 0.38, 0, 0.01], size: buttonSize, onReload: onReload }), _jsx(PlayPauseButton, { id: `${id}-play-pause`, position: [-width * 0.31, 0, 0.01], size: buttonSize, playing: playing, onInteract: onPlayPause }), _jsx(LiveIndicator, { position: [0, 0, 0.01], size: buttonSize, playing: playing }), isBuffering && (_jsx(Text, { position: [0, -0.04, 0.01], fontSize: 0.02, color: "#aaaaaa", anchorX: "center", anchorY: "middle", children: "\u8AAD\u307F\u8FBC\u307F\u4E2D..." })), _jsx(VolumeControl, { id: `${id}-volume`, position: [width * 0.4, 0, 0.01], size: buttonSize, volume: volume, onVolumeChange: onVolumeChange })] }));
|
|
14
15
|
});
|
|
15
16
|
ControlPanel.displayName = 'ControlPanel';
|
|
16
17
|
//# sourceMappingURL=ControlPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/ControlPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/ControlPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAC9B,CAAC,EACC,EAAE,EACF,KAAK,EACL,YAAY,EACZ,OAAO,EACP,MAAM,EACN,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,QAAQ,GACc,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,YAAY,GAAG,iBAAiB,CAAA;IAEnD,OAAO,CACL,iBAAO,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,aAE7B,gBAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,aACvB,wBAAe,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAI,EAC9C,4BAAmB,KAAK,EAAC,SAAS,EAAC,WAAW,QAAC,OAAO,EAAE,GAAG,GAAI,IAC1D,EAGP,KAAC,cAAc,IACb,EAAE,EAAE,GAAG,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAClC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,GACxB,EAGF,KAAC,YAAY,IACX,EAAE,EAAE,GAAG,EAAE,SAAS,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAClC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,GAClB,EAGF,KAAC,eAAe,IACd,EAAE,EAAE,GAAG,EAAE,aAAa,EACtB,QAAQ,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,GACvB,EAGF,KAAC,aAAa,IAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,EAG5E,WAAW,IAAI,CACd,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1B,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,kDAGX,CACR,EAGD,KAAC,aAAa,IACZ,EAAE,EAAE,GAAG,EAAE,SAAS,EAClB,QAAQ,EAAE,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,GAC9B,IACI,CACT,CAAA;AACH,CAAC,CACF,CAAA;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { LiveIndicatorProps } from
|
|
2
|
-
export declare const LiveIndicator: import("react").MemoExoticComponent<({ position, size }: LiveIndicatorProps) => import("react/jsx-runtime").JSX.Element>;
|
|
1
|
+
import type { LiveIndicatorProps } from "./types";
|
|
2
|
+
export declare const LiveIndicator: import("react").MemoExoticComponent<({ position, size, playing }: LiveIndicatorProps) => import("react/jsx-runtime").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=LiveIndicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/LiveIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"LiveIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/LiveIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,aAAa,oEACM,kBAAkB,6CA8BjD,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from
|
|
3
|
-
import { Text } from
|
|
4
|
-
export const LiveIndicator = memo(({ position, size }) => {
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { Text } from "@react-three/drei";
|
|
4
|
+
export const LiveIndicator = memo(({ position, size, playing }) => {
|
|
5
5
|
const dotSize = size * 0.15;
|
|
6
6
|
const fontSize = size * 0.4;
|
|
7
|
-
|
|
7
|
+
const dotColor = playing ? "#ff0000" : "#666666";
|
|
8
|
+
return (_jsxs("group", { position: position, children: [_jsxs("mesh", { position: [-size * 0.5, 0, 0], children: [_jsx("circleGeometry", { args: [dotSize, 16] }), _jsx("meshBasicMaterial", { color: dotColor }, playing ? "playing" : "paused")] }), _jsx(Text, { position: [size * 0.15, 0, 0], fontSize: fontSize, color: "#ffffff", anchorX: "center", anchorY: "middle", fontWeight: "bold", children: "LIVE" })] }));
|
|
8
9
|
});
|
|
9
|
-
LiveIndicator.displayName =
|
|
10
|
+
LiveIndicator.displayName = "LiveIndicator";
|
|
10
11
|
//# sourceMappingURL=LiveIndicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveIndicator.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/LiveIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"LiveIndicator.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/LiveIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAC/B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAsB,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjD,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,aAEvB,gBAAM,QAAQ,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,aACjC,yBAAgB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAI,EACvC,4BAEE,KAAK,EAAE,QAAQ,IADV,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAEnC,IACG,EAGP,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,UAAU,EAAC,MAAM,qBAGZ,IACD,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReloadButton.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/ReloadButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,eAAO,MAAM,YAAY,yEAA2C,iBAAiB,6CAoBnF,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from 'react';
|
|
3
|
+
import { Text } from '@react-three/drei';
|
|
4
|
+
import { Interactable } from '../Interactable';
|
|
5
|
+
export const ReloadButton = memo(({ id, position, size, onReload }) => {
|
|
6
|
+
return (_jsxs("group", { position: position, children: [_jsx(Interactable, { id: id, onInteract: onReload, interactionText: "\u518D\u8AAD\u307F\u8FBC\u307F", children: _jsxs("mesh", { children: [_jsx("circleGeometry", { args: [size / 2, 32] }), _jsx("meshBasicMaterial", { color: "#444444" })] }) }), _jsx(Text, { position: [0, 0, 0.01], fontSize: size * 0.4, color: "#ffffff", anchorX: "center", anchorY: "middle", children: "\u21BB" })] }));
|
|
7
|
+
});
|
|
8
|
+
ReloadButton.displayName = 'ReloadButton';
|
|
9
|
+
//# sourceMappingURL=ReloadButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReloadButton.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/ReloadButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACvF,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,aACvB,KAAC,YAAY,IAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAC,gCAAO,YACjE,2BACE,yBAAgB,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,GAAI,EACxC,4BAAmB,KAAK,EAAC,SAAS,GAAG,IAChC,GACM,EACf,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACtB,QAAQ,EAAE,IAAI,GAAG,GAAG,EACpB,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,uBAGX,IACD,CACT,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LiveVideoPlayerProps } from
|
|
2
|
-
export type { LiveVideoPlayerProps } from
|
|
1
|
+
import type { LiveVideoPlayerProps } from "./types";
|
|
2
|
+
export type { LiveVideoPlayerProps } from "./types";
|
|
3
3
|
export declare const LiveVideoPlayer: import("react").MemoExoticComponent<({ id, position, rotation, width, url: initialUrl, playing: initialPlaying, volume: initialVolume, onError, }: LiveVideoPlayerProps) => import("react/jsx-runtime").JSX.Element>;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAqKpD,eAAO,MAAM,eAAe,qJAUvB,oBAAoB,6CA2HxB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { memo, Suspense, useState, useCallback, useEffect, useRef, Component } from
|
|
3
|
-
import { useVideoTexture, Text } from
|
|
4
|
-
import { ControlPanel } from
|
|
2
|
+
import { memo, Suspense, useState, useCallback, useEffect, useRef, Component, } from "react";
|
|
3
|
+
import { useVideoTexture, Text } from "@react-three/drei";
|
|
4
|
+
import { ControlPanel } from "./ControlPanel";
|
|
5
5
|
const DEFAULT_POSITION = [0, 2, -5];
|
|
6
6
|
const DEFAULT_ROTATION = [0, 0, 0];
|
|
7
7
|
const DEFAULT_WIDTH = 4;
|
|
@@ -14,7 +14,7 @@ class VideoErrorBoundary extends Component {
|
|
|
14
14
|
return { hasError: true };
|
|
15
15
|
}
|
|
16
16
|
componentDidCatch(error) {
|
|
17
|
-
console.error(
|
|
17
|
+
console.error("Video load error:", error);
|
|
18
18
|
this.props.onError?.(error);
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
@@ -41,7 +41,7 @@ const VideoTexture = memo(({ url, width, screenHeight, playing, volume, onError,
|
|
|
41
41
|
return;
|
|
42
42
|
if (playing) {
|
|
43
43
|
video.play().catch((err) => {
|
|
44
|
-
console.error(
|
|
44
|
+
console.error("Live video play error:", err);
|
|
45
45
|
onError?.(err);
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -65,46 +65,51 @@ const VideoTexture = memo(({ url, width, screenHeight, playing, volume, onError,
|
|
|
65
65
|
const handleError = (e) => {
|
|
66
66
|
const error = e.target.error;
|
|
67
67
|
if (error) {
|
|
68
|
-
console.error(
|
|
68
|
+
console.error("Live video error:", error.message);
|
|
69
69
|
onError?.(new Error(error.message));
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
video.addEventListener(
|
|
73
|
-
video.addEventListener(
|
|
74
|
-
video.addEventListener(
|
|
75
|
-
video.addEventListener(
|
|
72
|
+
video.addEventListener("waiting", handleWaiting);
|
|
73
|
+
video.addEventListener("playing", handlePlaying);
|
|
74
|
+
video.addEventListener("canplay", handleCanPlay);
|
|
75
|
+
video.addEventListener("error", handleError);
|
|
76
76
|
return () => {
|
|
77
|
-
video.removeEventListener(
|
|
78
|
-
video.removeEventListener(
|
|
79
|
-
video.removeEventListener(
|
|
80
|
-
video.removeEventListener(
|
|
77
|
+
video.removeEventListener("waiting", handleWaiting);
|
|
78
|
+
video.removeEventListener("playing", handlePlaying);
|
|
79
|
+
video.removeEventListener("canplay", handleCanPlay);
|
|
80
|
+
video.removeEventListener("error", handleError);
|
|
81
81
|
};
|
|
82
82
|
}, [texture, onError, onBufferingChange]);
|
|
83
83
|
useEffect(() => {
|
|
84
84
|
const video = texture.image;
|
|
85
85
|
return () => {
|
|
86
86
|
video.pause();
|
|
87
|
-
video.src =
|
|
87
|
+
video.src = "";
|
|
88
88
|
video.load();
|
|
89
89
|
};
|
|
90
90
|
}, [texture]);
|
|
91
91
|
return (_jsxs("mesh", { children: [_jsx("planeGeometry", { args: [width, screenHeight] }), _jsx("meshBasicMaterial", { map: texture, toneMapped: false })] }));
|
|
92
92
|
});
|
|
93
|
-
VideoTexture.displayName =
|
|
93
|
+
VideoTexture.displayName = "VideoTexture";
|
|
94
94
|
/** プレースホルダー画面(読み込み中/エラー時/URL未設定時) */
|
|
95
|
-
const PlaceholderScreen = memo(({ width, screenHeight, color }) => (_jsxs("mesh", { children: [_jsx("planeGeometry", { args: [width, screenHeight] }), _jsx("meshBasicMaterial", { color: color })] })));
|
|
96
|
-
PlaceholderScreen.displayName =
|
|
97
|
-
export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, url: initialUrl, playing: initialPlaying =
|
|
95
|
+
const PlaceholderScreen = memo(({ width, screenHeight, color, }) => (_jsxs("mesh", { children: [_jsx("planeGeometry", { args: [width, screenHeight] }), _jsx("meshBasicMaterial", { color: color })] })));
|
|
96
|
+
PlaceholderScreen.displayName = "PlaceholderScreen";
|
|
97
|
+
export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, url: initialUrl, playing: initialPlaying = false, volume: initialVolume = 1, onError, }) => {
|
|
98
98
|
const [currentUrl, setCurrentUrl] = useState(initialUrl);
|
|
99
99
|
const [playing, setPlaying] = useState(initialPlaying);
|
|
100
100
|
const [volume, setVolume] = useState(initialVolume);
|
|
101
101
|
const [isBuffering, setIsBuffering] = useState(false);
|
|
102
102
|
const [hasError, setHasError] = useState(false);
|
|
103
|
+
const [reloadKey, setReloadKey] = useState(0);
|
|
103
104
|
const screenHeight = width * (9 / 16);
|
|
104
105
|
const handleUrlChange = useCallback((newUrl) => {
|
|
105
106
|
setCurrentUrl(newUrl);
|
|
106
107
|
setHasError(false);
|
|
107
108
|
}, []);
|
|
109
|
+
const handleReload = useCallback(() => {
|
|
110
|
+
setHasError(false);
|
|
111
|
+
setReloadKey((prev) => prev + 1);
|
|
112
|
+
}, []);
|
|
108
113
|
const handlePlayPause = useCallback(() => {
|
|
109
114
|
setPlaying((prev) => !prev);
|
|
110
115
|
}, []);
|
|
@@ -118,7 +123,7 @@ export const LiveVideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation
|
|
|
118
123
|
setHasError(true);
|
|
119
124
|
onError?.(error);
|
|
120
125
|
}, [onError]);
|
|
121
|
-
return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl || hasError ? (_jsxs(_Fragment, { children: [_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), !currentUrl && (
|
|
126
|
+
return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl || hasError ? (_jsxs(_Fragment, { children: [_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), !currentUrl && (_jsxs("group", { position: [0, 0, 0.01], children: [_jsx(Text, { position: [0, 0.05, 0], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", children: "\u30E9\u30A4\u30D6\u30B9\u30C8\u30EA\u30FC\u30E0URL\u3092\u5165\u529B" }), _jsx(Text, { position: [0, -0.15, 0], fontSize: width * 0.025, color: "#555555", anchorX: "center", anchorY: "middle", children: "HLS .m3u8 \u5F62\u5F0F" })] }))] })) : (_jsx(VideoErrorBoundary, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), onError: handleError, children: _jsx(Suspense, { fallback: _jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#333333" }), children: _jsx(VideoTexture, { url: currentUrl, width: width, screenHeight: screenHeight, playing: playing, volume: volume, onError: handleError, onBufferingChange: handleBufferingChange }, `${currentUrl}-${reloadKey}`) }) })), _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: playing, volume: volume, isBuffering: isBuffering, currentUrl: currentUrl || "", onPlayPause: handlePlayPause, onVolumeChange: handleVolumeChange, onUrlChange: handleUrlChange, onReload: handleReload })] }));
|
|
122
127
|
});
|
|
123
|
-
LiveVideoPlayer.displayName =
|
|
128
|
+
LiveVideoPlayer.displayName = "LiveVideoPlayer";
|
|
124
129
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,GAEV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,MAAM,gBAAgB,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,gBAAgB,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,MAAM,aAAa,GAAG,CAAC,CAAC;AAaxB,MAAM,kBAAmB,SAAQ,SAGhC;IACC,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,wBAAwB;QAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,KAAY;QAC5B,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF;AAED,wCAAwC;AACxC,MAAM,YAAY,GAAG,IAAI,CACvB,CAAC,EACC,GAAG,EACH,KAAK,EACL,YAAY,EACZ,OAAO,EACP,MAAM,EACN,OAAO,EACP,iBAAiB,GASlB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE;QACnC,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CACrB,OAAO,CAAC,KAAyB,CAClC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,KAAyB,CAAC;IACvD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,CAAC,CAAQ,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClD,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE7C,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,OAAO,CAAC,KAAyB,CAAC;QAChD,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,2BACE,wBAAe,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAI,EAC9C,4BAAmB,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,GAAI,IACjD,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,IAAI,CAC5B,CAAC,EACC,KAAK,EACL,YAAY,EACZ,KAAK,GAKN,EAAE,EAAE,CAAC,CACJ,2BACE,wBAAe,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,GAAI,EAC9C,4BAAmB,KAAK,EAAE,KAAK,GAAI,IAC9B,CACR,CACF,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CACjC,CAAC,EACC,EAAE,EACF,QAAQ,GAAG,gBAAgB,EAC3B,QAAQ,GAAG,gBAAgB,EAC3B,KAAK,GAAG,aAAa,EACrB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,GAAG,KAAK,EAC/B,MAAM,EAAE,aAAa,GAAG,CAAC,EACzB,OAAO,GACc,EAAE,EAAE;IACzB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtC,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE;QACrD,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QAC3D,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,SAAkB,EAAE,EAAE;QAC/D,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAY,EAAE,EAAE;QACf,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,aAE1C,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,CACzB,8BACE,KAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAC,SAAS,GACf,EACD,CAAC,UAAU,IAAI,CACd,iBAAO,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAC3B,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACtB,QAAQ,EAAE,KAAK,GAAG,IAAI,EACtB,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,sFAGX,EACP,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EACvB,QAAQ,EAAE,KAAK,GAAG,KAAK,EACvB,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,uCAGX,IACD,CACT,IACA,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,kBAAkB,IACjB,QAAQ,EACN,KAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAC,SAAS,GACf,EAEJ,OAAO,EAAE,WAAW,YAEpB,KAAC,QAAQ,IACP,QAAQ,EACN,KAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAC,SAAS,GACf,YAGJ,KAAC,YAAY,IAEX,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,iBAAiB,EAAE,qBAAqB,IAPnC,GAAG,UAAU,IAAI,SAAS,EAAE,CAQjC,GACO,GACQ,CACtB,EAGD,KAAC,YAAY,IACX,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,IAAI,EAAE,EAC5B,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,kBAAkB,EAClC,WAAW,EAAE,eAAe,EAC5B,QAAQ,EAAE,YAAY,GACtB,IACI,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC"}
|
|
@@ -9,7 +9,7 @@ export interface LiveVideoPlayerProps {
|
|
|
9
9
|
width?: number;
|
|
10
10
|
/** ライブストリームのURL(HLS .m3u8 形式) */
|
|
11
11
|
url?: string;
|
|
12
|
-
/** 初期再生状態(デフォルト:
|
|
12
|
+
/** 初期再生状態(デフォルト: false) */
|
|
13
13
|
playing?: boolean;
|
|
14
14
|
/** 初期音量 0〜1(デフォルト: 1) */
|
|
15
15
|
volume?: number;
|
|
@@ -29,6 +29,7 @@ export interface LiveControlPanelProps {
|
|
|
29
29
|
onPlayPause: () => void;
|
|
30
30
|
onVolumeChange: (volume: number) => void;
|
|
31
31
|
onUrlChange: (url: string) => void;
|
|
32
|
+
onReload: () => void;
|
|
32
33
|
}
|
|
33
34
|
export interface PlayPauseButtonProps {
|
|
34
35
|
id: string;
|
|
@@ -47,6 +48,7 @@ export interface VolumeControlProps {
|
|
|
47
48
|
export interface LiveIndicatorProps {
|
|
48
49
|
position: [number, number, number];
|
|
49
50
|
size: number;
|
|
51
|
+
playing: boolean;
|
|
50
52
|
}
|
|
51
53
|
export interface LoadingSpinnerProps {
|
|
52
54
|
position: [number, number, number];
|
|
@@ -59,4 +61,10 @@ export interface UrlInputButtonProps {
|
|
|
59
61
|
currentUrl: string;
|
|
60
62
|
onUrlChange: (url: string) => void;
|
|
61
63
|
}
|
|
64
|
+
export interface ReloadButtonProps {
|
|
65
|
+
id: string;
|
|
66
|
+
position: [number, number, number];
|
|
67
|
+
size: number;
|
|
68
|
+
onReload: () => void;
|
|
69
|
+
}
|
|
62
70
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/LiveVideoPlayer/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACzB,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB"}
|
|
@@ -7,7 +7,7 @@ import { Interactable } from '../Interactable';
|
|
|
7
7
|
import { useVideoTexture } from './hooks';
|
|
8
8
|
// デフォルト値
|
|
9
9
|
const DEFAULT_WIDTH = 4;
|
|
10
|
-
const DEFAULT_POSITION = [0,
|
|
10
|
+
const DEFAULT_POSITION = [0, 2, -5];
|
|
11
11
|
const DEFAULT_ROTATION = [0, 0, 0];
|
|
12
12
|
/**
|
|
13
13
|
* 映像を3D空間内にスクリーンとして表示するコンポーネント
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzC,SAAS;AACT,MAAM,aAAa,GAAG,CAAC,CAAA;AACvB,MAAM,gBAAgB,GAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"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"}
|