@xrift/world-components 0.31.4 → 0.31.6

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.
@@ -3,11 +3,11 @@ import * as THREE from 'three';
3
3
  * VideoElement から VideoTexture を作成し管理するフック
4
4
  * @param videoElement 映像のvideo要素
5
5
  * @param screenSize スクリーンのサイズ [幅, 高さ]
6
+ * @param targetFps テクスチャ更新のフレームレート上限(省略時は制限なし)
6
7
  */
7
- export declare const useVideoTexture: (videoElement: HTMLVideoElement | null, screenSize: [number, number]) => {
8
+ export declare const useVideoTexture: (videoElement: HTMLVideoElement | null, screenSize: [number, number], targetFps?: number) => {
8
9
  texture: THREE.VideoTexture<HTMLVideoElement> | null;
9
10
  hasVideo: boolean;
10
- materialRef: import("react").RefObject<THREE.MeshBasicMaterial>;
11
11
  videoSize: [number, number];
12
12
  };
13
13
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAuB9B;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,cAAc,gBAAgB,GAAG,IAAI,EACrC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;CA6E7B,CAAA"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,cAAc,gBAAgB,GAAG,IAAI,EACrC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,MAAM;;;;CAuFnB,CAAA"}
@@ -1,48 +1,33 @@
1
1
  import { useFrame } from '@react-three/fiber';
2
- import { useEffect, useRef, useState } from 'react';
2
+ import { useEffect, useMemo, useRef, useState } from 'react';
3
3
  import * as THREE from 'three';
4
- /**
5
- * object-fit: contain 用の映像サイズを計算
6
- */
7
- const calculateContainSize = (videoWidth, videoHeight, screenWidth, screenHeight) => {
8
- const videoAspect = videoWidth / videoHeight;
9
- const screenAspect = screenWidth / screenHeight;
10
- if (videoAspect > screenAspect) {
11
- // 映像が横長 → 幅に合わせて高さを調整
12
- return [screenWidth, screenWidth / videoAspect];
13
- }
14
- else {
15
- // 映像が縦長 → 高さに合わせて幅を調整
16
- return [screenHeight * videoAspect, screenHeight];
17
- }
18
- };
4
+ import { calculateContainSize } from './utils';
19
5
  /**
20
6
  * VideoElement から VideoTexture を作成し管理するフック
21
7
  * @param videoElement 映像のvideo要素
22
8
  * @param screenSize スクリーンのサイズ [幅, 高さ]
9
+ * @param targetFps テクスチャ更新のフレームレート上限(省略時は制限なし)
23
10
  */
24
- export const useVideoTexture = (videoElement, screenSize) => {
25
- const materialRef = useRef(null);
11
+ export const useVideoTexture = (videoElement, screenSize, targetFps) => {
26
12
  const [texture, setTexture] = useState(null);
27
- const [videoSize, setVideoSize] = useState(screenSize);
13
+ const [videoResolution, setVideoResolution] = useState(null);
14
+ const lastUpdateRef = useRef(0);
28
15
  const hasVideo = texture !== null;
29
- // VideoTextureの作成と更新
16
+ // VideoTextureの作成(videoElement のみに依存)
30
17
  useEffect(() => {
31
18
  if (!videoElement) {
32
19
  setTexture(null);
33
- setVideoSize(screenSize);
20
+ setVideoResolution(null);
34
21
  return;
35
22
  }
36
23
  const videoTexture = new THREE.VideoTexture(videoElement);
37
24
  videoTexture.minFilter = THREE.LinearFilter;
38
25
  videoTexture.magFilter = THREE.LinearFilter;
39
26
  videoTexture.colorSpace = THREE.SRGBColorSpace;
40
- videoTexture.needsUpdate = true;
41
27
  setTexture(videoTexture);
42
- // 映像のメタデータがロードされたらサイズを計算
28
+ // 映像のメタデータがロードされたら解像度を記録
43
29
  const handleLoadedMetadata = () => {
44
- const size = calculateContainSize(videoElement.videoWidth, videoElement.videoHeight, screenSize[0], screenSize[1]);
45
- setVideoSize(size);
30
+ setVideoResolution([videoElement.videoWidth, videoElement.videoHeight]);
46
31
  };
47
32
  if (videoElement.videoWidth > 0) {
48
33
  handleLoadedMetadata();
@@ -54,35 +39,45 @@ export const useVideoTexture = (videoElement, screenSize) => {
54
39
  videoElement.removeEventListener('loadedmetadata', handleLoadedMetadata);
55
40
  videoTexture.dispose();
56
41
  };
57
- }, [videoElement, screenSize]);
58
- // マテリアルにテクスチャをセット
59
- useEffect(() => {
60
- if (!materialRef.current || !texture)
61
- return;
62
- materialRef.current.map = texture;
63
- materialRef.current.needsUpdate = true;
64
- }, [texture]);
65
- // テクスチャ更新(毎フレーム)
42
+ }, [videoElement]);
43
+ // targetFps 指定時: VideoTexture の自動更新を間引く
44
+ // VideoTexture は rVFC で毎ビデオフレーム source.needsUpdate = true を設定する。
45
+ // useFrame gl.render() の直前に実行されるため、間隔内の更新を抑制できる。
66
46
  useFrame(() => {
67
- if (!texture)
47
+ if (!texture || !targetFps)
68
48
  return;
69
- texture.needsUpdate = true;
49
+ const now = performance.now();
50
+ if (now - lastUpdateRef.current < 1000 / targetFps) {
51
+ texture.source.needsUpdate = false;
52
+ }
53
+ else {
54
+ lastUpdateRef.current = now;
55
+ }
70
56
  });
71
- // video要素が一時停止していたら再生を試みる
57
+ // 映像サイズの計算(screenSize や videoResolution の変更時のみ再計算)
58
+ const videoSize = useMemo(() => {
59
+ if (!videoResolution)
60
+ return screenSize;
61
+ return calculateContainSize(videoResolution[0], videoResolution[1], screenSize[0], screenSize[1]);
62
+ }, [videoResolution, screenSize]);
63
+ // video要素が一時停止したら自動で再生を試みる
72
64
  useEffect(() => {
73
65
  if (!videoElement)
74
66
  return;
75
- const checkAndPlay = () => {
76
- if (videoElement.paused) {
77
- videoElement.play().catch(() => {
78
- // 再生失敗は無視
79
- });
80
- }
67
+ const handlePause = () => {
68
+ videoElement.play().catch(() => {
69
+ // 再生失敗は無視
70
+ });
71
+ };
72
+ // 初回チェック
73
+ if (videoElement.paused) {
74
+ handlePause();
75
+ }
76
+ videoElement.addEventListener('pause', handlePause);
77
+ return () => {
78
+ videoElement.removeEventListener('pause', handlePause);
81
79
  };
82
- checkAndPlay();
83
- const interval = setInterval(checkAndPlay, 1000);
84
- return () => clearInterval(interval);
85
80
  }, [videoElement]);
86
- return { texture, hasVideo, materialRef, videoSize };
81
+ return { texture, hasVideo, videoSize };
87
82
  };
88
83
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,YAAqC,EACrC,UAA4B,EAC5B,SAAkB,EAClB,EAAE;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAA;IACvE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAEpD,IAAI,CAAC,CAAA;IACP,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAA;IAEjC,sCAAsC;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;QACzD,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAA;QAC3C,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAA;QAC3C,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAA;QAC9C,UAAU,CAAC,YAAY,CAAC,CAAA;QAExB,yBAAyB;QACzB,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,kBAAkB,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;QACzE,CAAC,CAAA;QAED,IAAI,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAChC,oBAAoB,EAAE,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;YACxE,YAAY,CAAC,OAAO,EAAE,CAAA;QACxB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,wCAAwC;IACxC,iEAAiE;IACjE,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YAAE,OAAM;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC7B,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,OAAO,GAAG,GAAG,CAAA;QAC7B,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,mDAAmD;IACnD,MAAM,SAAS,GAAG,OAAO,CAAmB,GAAG,EAAE;QAC/C,IAAI,CAAC,eAAe;YAAE,OAAO,UAAU,CAAA;QACvC,OAAO,oBAAoB,CACzB,eAAe,CAAC,CAAC,CAAC,EAClB,eAAe,CAAC,CAAC,CAAC,EAClB,UAAU,CAAC,CAAC,CAAC,EACb,UAAU,CAAC,CAAC,CAAC,CACd,CAAA;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAA;IAEjC,2BAA2B;IAC3B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC7B,UAAU;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,SAAS;QACT,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,WAAW,EAAE,CAAA;QACf,CAAC;QAED,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAEnD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACxD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AACzC,CAAC,CAAA"}
@@ -4,5 +4,5 @@ export type { Props as ScreenShareDisplayProps } from './types';
4
4
  * 映像を3D空間内にスクリーンとして表示するコンポーネント
5
5
  * 画面共有やカメラ映像などの表示に使用可能
6
6
  */
7
- export declare const ScreenShareDisplay: import("react").MemoExoticComponent<({ id, position, rotation, width, }: Props) => import("react/jsx-runtime").JSX.Element>;
7
+ export declare const ScreenShareDisplay: import("react").MemoExoticComponent<({ id, position, rotation, width, targetFps, }: Props) => import("react/jsx-runtime").JSX.Element>;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAO/D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2EAK5B,KAAK,6CA0DN,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAO/D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,sFAM5B,KAAK,6CAwDN,CAAA"}
@@ -13,11 +13,11 @@ const DEFAULT_ROTATION = [0, 0, 0];
13
13
  * 映像を3D空間内にスクリーンとして表示するコンポーネント
14
14
  * 画面共有やカメラ映像などの表示に使用可能
15
15
  */
16
- export const ScreenShareDisplay = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, }) => {
16
+ export const ScreenShareDisplay = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, targetFps, }) => {
17
17
  const { videoElement, isSharing, startScreenShare, stopScreenShare, isRoomConnected } = useScreenShareContext();
18
18
  const interactionText = isSharing ? '画面共有を停止' : '画面共有を開始';
19
19
  const screenSize = useMemo(() => [width, width * (9 / 16)], [width]);
20
- const { texture, hasVideo, materialRef, videoSize } = useVideoTexture(videoElement, screenSize);
20
+ const { texture, hasVideo, videoSize } = useVideoTexture(videoElement, screenSize, targetFps);
21
21
  const handleInteract = useCallback(() => {
22
22
  if (isSharing) {
23
23
  stopScreenShare();
@@ -26,6 +26,6 @@ export const ScreenShareDisplay = memo(({ id, position = DEFAULT_POSITION, rotat
26
26
  startScreenShare();
27
27
  }
28
28
  }, [isSharing, startScreenShare, stopScreenShare]);
29
- return (_jsxs("group", { position: position, rotation: rotation, children: [_jsxs(Interactable, { id: id, onInteract: handleInteract, interactionText: interactionText, children: [_jsxs("mesh", { visible: !hasVideo, children: [_jsx("planeGeometry", { args: [screenSize[0], screenSize[1]] }), _jsx("meshBasicMaterial", { side: THREE.FrontSide, toneMapped: false, color: "#1a1a2a" })] }), _jsxs("mesh", { visible: hasVideo, children: [_jsx("planeGeometry", { args: [videoSize[0], videoSize[1]] }), _jsx("meshBasicMaterial", { ref: materialRef, map: texture, side: THREE.FrontSide, toneMapped: false })] })] }), !hasVideo && (_jsx(Text, { position: [0, 0, 0.01], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", textAlign: "center", "material-side": THREE.FrontSide, children: isRoomConnected ? 'クリックして画面共有' : '他のユーザーがいると\n画面共有できます' }))] }));
29
+ return (_jsxs("group", { position: position, rotation: rotation, children: [_jsxs(Interactable, { id: id, onInteract: handleInteract, interactionText: interactionText, children: [_jsxs("mesh", { visible: !hasVideo, children: [_jsx("planeGeometry", { args: [screenSize[0], screenSize[1]] }), _jsx("meshBasicMaterial", { side: THREE.FrontSide, toneMapped: false, color: "#1a1a2a" })] }), _jsxs("mesh", { visible: hasVideo, children: [_jsx("planeGeometry", { args: [videoSize[0], videoSize[1]] }), _jsx("meshBasicMaterial", { map: texture, side: THREE.FrontSide, toneMapped: false })] })] }), !hasVideo && (_jsx(Text, { position: [0, 0, 0.01], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", textAlign: "center", children: isRoomConnected ? 'クリックして画面共有' : '他のユーザーがいると\n画面共有できます' }))] }));
30
30
  });
31
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export interface Props {
7
7
  rotation?: [number, number, number];
8
8
  /** スクリーンの幅(高さは16:9で自動計算) */
9
9
  width?: number;
10
+ /** テクスチャ更新のフレームレート上限(低スペック端末向け。省略時は制限なし) */
11
+ targetFps?: number;
10
12
  }
11
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,kBAAkB;IAClB,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,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,kBAAkB;IAClB,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,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
@@ -7,12 +7,14 @@ interface Props {
7
7
  duration: number;
8
8
  volume: number;
9
9
  url: string;
10
+ visible: boolean;
10
11
  onPlayPause: () => void;
11
12
  onStop: () => void;
12
13
  onSeek: (time: number) => void;
13
14
  onVolumeChange: (volume: number) => void;
14
15
  onUrlChange: (url: string) => void;
16
+ onToggleVisible: () => void;
15
17
  }
16
- export declare const ControlPanel: import("react").MemoExoticComponent<({ id, width, screenHeight, playing, progress, duration, volume, url, onPlayPause, onStop, onSeek, onVolumeChange, onUrlChange, }: Props) => import("react/jsx-runtime").JSX.Element>;
18
+ export declare const ControlPanel: import("react").MemoExoticComponent<({ id, width, screenHeight, playing, progress, duration, volume, url, visible, onPlayPause, onStop, onSeek, onVolumeChange, onUrlChange, onToggleVisible, }: Props) => import("react/jsx-runtime").JSX.Element>;
17
19
  export {};
18
20
  //# sourceMappingURL=ControlPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/VideoPlayer/components/ControlPanel.tsx"],"names":[],"mappings":"AAQA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAOD,eAAO,MAAM,YAAY,yKAepB,KAAK,6CA6FT,CAAA"}
1
+ {"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/VideoPlayer/components/ControlPanel.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B;AA8CD,eAAO,MAAM,YAAY,mMAiBpB,KAAK,6CAsKT,CAAA"}
@@ -1,18 +1,28 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback } from 'react';
3
- import { Text } from '@react-three/drei';
4
- import { IconButton } from '../../commons/IconButton';
5
- import { VolumeControl } from '../../commons/VolumeControl';
6
- import { ProgressBar } from './ProgressBar';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { memo, useCallback, useMemo } from 'react';
3
+ import { Container, Text } from '@react-three/uikit';
7
4
  import { formatTime } from '../utils';
8
5
  import { useTextInputContext } from '../../../contexts/TextInputContext';
9
- const PANEL_HEIGHT = 0.15;
10
- const BUTTON_SIZE = PANEL_HEIGHT * 0.6;
11
- const PROGRESS_BAR_WIDTH_RATIO = 0.5;
12
- const PROGRESS_BAR_HEIGHT = 0.02;
13
- export const ControlPanel = memo(({ id, width, screenHeight, playing, progress, duration, volume, url, onPlayPause, onStop, onSeek, onVolumeChange, onUrlChange, }) => {
14
- const panelY = -screenHeight / 2 - PANEL_HEIGHT / 2;
15
- const progressBarWidth = width * PROGRESS_BAR_WIDTH_RATIO;
6
+ const PIXEL_SIZE = 0.01;
7
+ const PROGRESS_SEGMENTS = 20;
8
+ const VOLUME_SEGMENTS = 11;
9
+ /** パネル高さの割合(screenHeight 10%) */
10
+ const PANEL_HEIGHT_RATIO = 0.1;
11
+ /** 一時停止アイコン: 2本の縦棒 */
12
+ const PauseIcon = memo(({ size }) => (_jsxs(Container, { width: size, height: size, flexDirection: "row", justifyContent: "center", alignItems: "center", gap: size * 0.15, children: [_jsx(Container, { width: size * 0.2, height: size * 0.7, backgroundColor: 0xffffff, borderRadius: 1 }), _jsx(Container, { width: size * 0.2, height: size * 0.7, backgroundColor: 0xffffff, borderRadius: 1 })] })));
13
+ PauseIcon.displayName = 'PauseIcon';
14
+ /** 再生アイコン: 右向き三角(3つの棒で近似) */
15
+ const PlayIcon = memo(({ size }) => (_jsxs(Container, { width: size, height: size, flexDirection: "row", justifyContent: "center", alignItems: "center", gap: 0, children: [_jsx(Container, { width: size * 0.15, height: size * 0.7, backgroundColor: 0xffffff, borderRadius: 1 }), _jsx(Container, { width: size * 0.15, height: size * 0.5, backgroundColor: 0xffffff, borderRadius: 1 }), _jsx(Container, { width: size * 0.15, height: size * 0.3, backgroundColor: 0xffffff, borderRadius: 1 })] })));
16
+ PlayIcon.displayName = 'PlayIcon';
17
+ /** 停止アイコン: 四角 */
18
+ const StopIcon = memo(({ size }) => (_jsx(Container, { width: size, height: size, justifyContent: "center", alignItems: "center", children: _jsx(Container, { width: size * 0.5, height: size * 0.5, backgroundColor: 0xffffff, borderRadius: 1 }) })));
19
+ StopIcon.displayName = 'StopIcon';
20
+ /** 音量アイコン: 棒グラフ風 */
21
+ const VolumeIcon = memo(({ size, muted }) => (_jsxs(Container, { width: size, height: size, flexDirection: "row", justifyContent: "center", alignItems: "flex-end", gap: size * 0.06, children: [_jsx(Container, { width: size * 0.12, height: size * 0.25, backgroundColor: muted ? 0x666666 : 0xffffff, borderRadius: 1 }), _jsx(Container, { width: size * 0.12, height: size * 0.45, backgroundColor: muted ? 0x666666 : 0xffffff, borderRadius: 1 }), _jsx(Container, { width: size * 0.12, height: size * 0.65, backgroundColor: muted ? 0x666666 : 0xffffff, borderRadius: 1 })] })));
22
+ VolumeIcon.displayName = 'VolumeIcon';
23
+ export const ControlPanel = memo(({ id, width, screenHeight, playing, progress, duration, volume, url, visible, onPlayPause, onStop, onSeek, onVolumeChange, onUrlChange, onToggleVisible, }) => {
24
+ const pxHeight = screenHeight / PIXEL_SIZE;
25
+ const panelHeight = pxHeight * PANEL_HEIGHT_RATIO;
16
26
  const currentTime = progress * duration;
17
27
  const timeText = `${formatTime(currentTime)} / ${formatTime(duration)}`;
18
28
  const { requestTextInput } = useTextInputContext();
@@ -28,7 +38,23 @@ export const ControlPanel = memo(({ id, width, screenHeight, playing, progress,
28
38
  },
29
39
  });
30
40
  }, [id, url, onUrlChange, requestTextInput]);
31
- 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(IconButton, { id: `${id}-url-input`, position: [-width * 0.45, 0, 0.01], size: BUTTON_SIZE, icon: "\uD83D\uDD17", interactionText: "URL\u5909\u66F4", onInteract: handleUrlInput }), _jsx(IconButton, { id: `${id}-play-pause`, position: [-width * 0.38, 0, 0.01], size: BUTTON_SIZE, icon: playing ? "||" : "▶", interactionText: playing ? "一時停止" : "再生", onInteract: onPlayPause }), _jsx(IconButton, { id: `${id}-stop`, position: [-width * 0.31, 0, 0.01], size: BUTTON_SIZE, icon: "\u25A0", interactionText: "\u505C\u6B62", onInteract: onStop }), _jsx(ProgressBar, { id: `${id}-progress`, position: [0, 0.01, 0.01], width: progressBarWidth, height: PROGRESS_BAR_HEIGHT, progress: progress, duration: duration, onSeek: onSeek }), _jsx(Text, { position: [0, -0.035, 0.01], fontSize: 0.025, color: "#aaaaaa", anchorX: "center", anchorY: "middle", children: timeText }), _jsx(VolumeControl, { id: `${id}-volume`, position: [width * 0.4, 0, 0.01], size: BUTTON_SIZE, volume: volume, onVolumeChange: onVolumeChange })] }));
41
+ const progressSegments = useMemo(() => {
42
+ return Array.from({ length: PROGRESS_SEGMENTS }).map((_, i) => {
43
+ const value = (i / (PROGRESS_SEGMENTS - 1)) * duration;
44
+ const isFilled = i / PROGRESS_SEGMENTS <= progress;
45
+ return { index: i, value, isFilled };
46
+ });
47
+ }, [duration, progress]);
48
+ const volumeSegments = useMemo(() => {
49
+ return Array.from({ length: VOLUME_SEGMENTS }).map((_, i) => {
50
+ const value = i / (VOLUME_SEGMENTS - 1);
51
+ const isFilled = value <= volume;
52
+ return { index: i, value, isFilled };
53
+ });
54
+ }, [volume]);
55
+ const buttonSize = panelHeight * 0.6;
56
+ const iconSize = buttonSize * 0.5;
57
+ return (_jsx(Container, { sizeX: width, sizeY: screenHeight, pixelSize: PIXEL_SIZE, flexDirection: "column", justifyContent: "flex-end", onClick: onToggleVisible, cursor: "pointer", children: !visible ? null : _jsxs(_Fragment, { children: [_jsx(Container, { flexGrow: 1, width: "100%", backgroundColor: 0x000000, opacity: 0.4 }), _jsxs(Container, { width: "100%", height: panelHeight, backgroundColor: 0x000000, opacity: 0.6, flexDirection: "row", alignItems: "center", paddingX: panelHeight * 0.15, gap: panelHeight * 0.1, onClick: (e) => e.stopPropagation?.(), children: [_jsx(Container, { width: buttonSize, height: buttonSize, backgroundColor: 0x444444, borderRadius: buttonSize / 2, justifyContent: "center", alignItems: "center", hover: { backgroundColor: 0x666666 }, active: { backgroundColor: 0x333333 }, onClick: handleUrlInput, cursor: "pointer", children: _jsx(Text, { fontSize: iconSize * 0.6, color: 0xffffff, fontWeight: "bold", children: "URL" }) }), _jsx(Container, { width: buttonSize, height: buttonSize, backgroundColor: 0x444444, borderRadius: buttonSize / 2, justifyContent: "center", alignItems: "center", hover: { backgroundColor: 0x666666 }, active: { backgroundColor: 0x333333 }, onClick: onPlayPause, cursor: "pointer", children: playing ? _jsx(PauseIcon, { size: iconSize }) : _jsx(PlayIcon, { size: iconSize }) }), _jsx(Container, { width: buttonSize, height: buttonSize, backgroundColor: 0x444444, borderRadius: buttonSize / 2, justifyContent: "center", alignItems: "center", hover: { backgroundColor: 0x666666 }, active: { backgroundColor: 0x333333 }, onClick: onStop, cursor: "pointer", children: _jsx(StopIcon, { size: iconSize }) }), _jsx(Container, { flexGrow: 1, height: panelHeight * 0.2, flexDirection: "row", borderRadius: 2, children: progressSegments.map((seg) => (_jsx(Container, { flexGrow: 1, height: "100%", backgroundColor: seg.isFilled ? 0x4a9eff : 0x333333, hover: { backgroundColor: seg.isFilled ? 0x6ab4ff : 0x555555 }, onClick: () => onSeek(seg.value), cursor: "pointer" }, seg.index))) }), _jsx(Text, { fontSize: iconSize * 0.7, color: 0xaaaaaa, whiteSpace: "pre", children: timeText }), _jsx(VolumeIcon, { size: iconSize, muted: volume === 0 }), _jsx(Container, { width: panelHeight * 1.2, height: panelHeight * 0.2, flexDirection: "row", borderRadius: 2, children: volumeSegments.map((seg) => (_jsx(Container, { flexGrow: 1, height: "100%", backgroundColor: seg.isFilled ? 0x4aff4a : 0x333333, hover: { backgroundColor: seg.isFilled ? 0x6eff6e : 0x555555 }, onClick: () => onVolumeChange(seg.value), cursor: "pointer" }, seg.index))) })] })] }) }));
32
58
  });
33
59
  ControlPanel.displayName = 'ControlPanel';
34
60
  //# sourceMappingURL=ControlPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../../src/components/VideoPlayer/components/ControlPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../../src/components/VideoPlayer/components/ControlPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACb,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,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAA;AA8DpC,eAAO,MAAM,WAAW,4IASnB,KAAK,6CAkHT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACb,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,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAiEpC,eAAO,MAAM,WAAW,4IASnB,KAAK,6CAkJT,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, Suspense, useState, useCallback, useRef } from 'react';
2
+ import { memo, Suspense, useState, useCallback, useRef, useEffect } from 'react';
3
3
  import { FrontSide } from 'three';
4
4
  import { Text } from '@react-three/drei';
5
5
  import { useFrame } from '@react-three/fiber';
@@ -8,6 +8,8 @@ import { useVideoElement } from '../../hooks/useVideoElement';
8
8
  import { VideoMesh } from '../commons/VideoMesh';
9
9
  import { ErrorBoundary } from '../commons/ErrorBoundary';
10
10
  import { PlaceholderScreen } from '../commons/PlaceholderScreen';
11
+ /** UI操作後に自動非表示するまでの時間(ms) */
12
+ const AUTO_HIDE_DELAY = 3000;
11
13
  const DEFAULT_POSITION = [0, 2, -5];
12
14
  const DEFAULT_ROTATION = [0, 0, 0];
13
15
  const DEFAULT_WIDTH = 4;
@@ -48,8 +50,31 @@ export const VideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = D
48
50
  const [duration, setDuration] = useState(0);
49
51
  const [hasError, setHasError] = useState(false);
50
52
  const [reloadKey, setReloadKey] = useState(0);
53
+ const [controlsVisible, setControlsVisible] = useState(false);
51
54
  const seekTimeRef = useRef(null);
55
+ const autoHideTimerRef = useRef(null);
52
56
  const screenHeight = width * (9 / 16);
57
+ const resetAutoHideTimer = useCallback(() => {
58
+ if (autoHideTimerRef.current)
59
+ clearTimeout(autoHideTimerRef.current);
60
+ autoHideTimerRef.current = setTimeout(() => {
61
+ setControlsVisible(false);
62
+ }, AUTO_HIDE_DELAY);
63
+ }, []);
64
+ // 再生中にUIを表示したらタイマー開始、停止中はタイマー解除
65
+ useEffect(() => {
66
+ if (playing && controlsVisible) {
67
+ resetAutoHideTimer();
68
+ }
69
+ else if (autoHideTimerRef.current) {
70
+ clearTimeout(autoHideTimerRef.current);
71
+ autoHideTimerRef.current = null;
72
+ }
73
+ return () => {
74
+ if (autoHideTimerRef.current)
75
+ clearTimeout(autoHideTimerRef.current);
76
+ };
77
+ }, [playing, controlsVisible, resetAutoHideTimer]);
53
78
  const handleUrlChange = useCallback((newUrl) => {
54
79
  setCurrentUrl(newUrl);
55
80
  setHasError(false);
@@ -69,21 +94,26 @@ export const VideoPlayer = memo(({ id, position = DEFAULT_POSITION, rotation = D
69
94
  }, []);
70
95
  const handleVolumeChange = useCallback((newVolume) => {
71
96
  setVolume(newVolume);
72
- }, []);
97
+ resetAutoHideTimer();
98
+ }, [resetAutoHideTimer]);
73
99
  const handleSeek = useCallback((time) => {
74
100
  seekTimeRef.current = time;
75
- }, []);
101
+ resetAutoHideTimer();
102
+ }, [resetAutoHideTimer]);
76
103
  const handleDurationChange = useCallback((newDuration) => {
77
104
  setDuration(newDuration);
78
105
  }, []);
79
106
  const handleProgressChange = useCallback((newProgress) => {
80
107
  setProgress(newProgress);
81
108
  }, []);
109
+ const handleToggleControls = useCallback(() => {
110
+ setControlsVisible((prev) => !prev);
111
+ }, []);
82
112
  const handleError = useCallback((error) => {
83
113
  console.error('VideoPlayer error:', error);
84
114
  setHasError(true);
85
115
  }, []);
86
- return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl || hasError ? (_jsxs(_Fragment, { children: [_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), !currentUrl && (_jsx(Text, { position: [0, 0, 0.01], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", "material-side": FrontSide, children: "URL\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044" }))] })) : (_jsx(ErrorBoundary, { 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(VideoTextureInner, { url: currentUrl, cacheKey: reloadKey, width: width, screenHeight: screenHeight, playing: playing, volume: volume, onDurationChange: handleDurationChange, onProgressChange: handleProgressChange, seekTimeRef: seekTimeRef }, `${currentUrl}-${reloadKey}`) }) })), _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: playing, progress: progress, duration: duration, volume: volume, url: currentUrl || '', onPlayPause: handlePlayPause, onStop: handleStop, onSeek: handleSeek, onVolumeChange: handleVolumeChange, onUrlChange: handleUrlChange })] }));
116
+ return (_jsxs("group", { position: position, rotation: rotation, children: [!currentUrl || hasError ? (_jsxs(_Fragment, { children: [_jsx(PlaceholderScreen, { width: width, screenHeight: screenHeight, color: "#000000" }), !currentUrl && (_jsx(Text, { position: [0, 0, 0.01], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", "material-side": FrontSide, children: "URL\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044" }))] })) : (_jsx(ErrorBoundary, { 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(VideoTextureInner, { url: currentUrl, cacheKey: reloadKey, width: width, screenHeight: screenHeight, playing: playing, volume: volume, onDurationChange: handleDurationChange, onProgressChange: handleProgressChange, seekTimeRef: seekTimeRef }, `${currentUrl}-${reloadKey}`) }) })), _jsx("group", { position: [0, 0, 0.01], children: _jsx(ControlPanel, { id: id, width: width, screenHeight: screenHeight, playing: playing, progress: progress, duration: duration, volume: volume, url: currentUrl || '', visible: !playing || controlsVisible, onPlayPause: handlePlayPause, onStop: handleStop, onSeek: handleSeek, onVolumeChange: handleVolumeChange, onUrlChange: handleUrlChange, onToggleVisible: handleToggleControls }) })] }));
87
117
  });
88
118
  VideoPlayer.displayName = 'VideoPlayer';
89
119
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/index.tsx"],"names":[],"mappings":"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"}
@@ -54,12 +54,13 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
54
54
  const unregisterInteractable = useCallback((object) => {
55
55
  interactableObjects.delete(object);
56
56
  }, [interactableObjects]);
57
- return (_jsx(XRiftContext.Provider, { value: {
58
- baseUrl,
59
- interactableObjects,
60
- registerInteractable,
61
- unregisterInteractable,
62
- }, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(TextInputProvider, { value: textInputImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsx(InstanceEventProvider, { value: instanceEventImpl, children: _jsx(TeleportProvider, { value: teleportImpl, children: _jsx(ConfirmProvider, { value: confirmImpl, children: _jsx(WorldProvider, { value: worldImpl, children: _jsx(InstanceProvider, { value: instanceImpl, children: placementMode ? (_jsx(PlacementStateProvider, { mode: placementMode, children: children })) : (children) }) }) }) }) }) }) }) }) }) }) }));
57
+ const xriftContextValue = useMemo(() => ({
58
+ baseUrl,
59
+ interactableObjects,
60
+ registerInteractable,
61
+ unregisterInteractable,
62
+ }), [baseUrl, interactableObjects, registerInteractable, unregisterInteractable]);
63
+ return (_jsx(XRiftContext.Provider, { value: xriftContextValue, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(TextInputProvider, { value: textInputImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsx(InstanceEventProvider, { value: instanceEventImpl, children: _jsx(TeleportProvider, { value: teleportImpl, children: _jsx(ConfirmProvider, { value: confirmImpl, children: _jsx(WorldProvider, { value: worldImpl, children: _jsx(InstanceProvider, { value: instanceImpl, children: placementMode ? (_jsx(PlacementStateProvider, { mode: placementMode, children: children })) : (children) }) }) }) }) }) }) }) }) }) }) }));
63
64
  };
64
65
  /**
65
66
  * XRift ワールドの情報を取得するhook
@@ -1 +1 @@
1
- {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoElement.d.ts","sourceRoot":"","sources":["../../src/hooks/useVideoElement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAQpC,MAAM,WAAW,sBAAsB;IACrC,YAAY;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB;IACtB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc;IACd,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC5B,eAAe;IACf,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,QAAY,EACZ,OAAO,EACP,MAAM,EACN,IAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,gBAAgB,GACjB,EAAE,sBAAsB,GAAG,qBAAqB,CAgMhD"}
1
+ {"version":3,"file":"useVideoElement.d.ts","sourceRoot":"","sources":["../../src/hooks/useVideoElement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAQpC,MAAM,WAAW,sBAAsB;IACrC,YAAY;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB;IACtB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc;IACd,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC5B,eAAe;IACf,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,QAAY,EACZ,OAAO,EACP,MAAM,EACN,IAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,gBAAgB,GACjB,EAAE,sBAAsB,GAAG,qBAAqB,CA4MhD"}
@@ -28,6 +28,29 @@ export function useVideoElement({ url, cacheKey = 0, playing, volume, loop = fal
28
28
  videoRef.current = texture.image;
29
29
  errorReportedRef.current = false; // 新しいテクスチャではエラーフラグをリセット
30
30
  }, [texture]);
31
+ // Triplex デバッグパネルへの出力
32
+ useEffect(() => {
33
+ const video = videoRef.current;
34
+ if (!video)
35
+ return;
36
+ const debugInterval = setInterval(() => {
37
+ const v = videoRef.current;
38
+ if (!v)
39
+ return;
40
+ window.triplex?.debug("VideoElement", {
41
+ paused: v.paused,
42
+ muted: v.muted,
43
+ volume: v.volume,
44
+ readyState: v.readyState,
45
+ networkState: v.networkState,
46
+ currentTime: Math.round(v.currentTime * 100) / 100,
47
+ duration: Math.round((v.duration || 0) * 100) / 100,
48
+ error: v.error ? `${v.error.code}: ${v.error.message}` : null,
49
+ src: v.src.slice(0, 60),
50
+ });
51
+ }, 500);
52
+ return () => clearInterval(debugInterval);
53
+ }, [texture]);
31
54
  // 再生/停止制御
32
55
  useEffect(() => {
33
56
  const video = videoRef.current;
@@ -157,24 +180,16 @@ export function useVideoElement({ url, cacheKey = 0, playing, volume, loop = fal
157
180
  };
158
181
  }, [texture, onError, onBufferingChange, onDurationChange, startStallDetection, clearStallDetection]);
159
182
  // クリーンアップ
183
+ // suspend-react がビデオ要素とテクスチャのライフサイクルを管理するため、
184
+ // ソースのクリアやテクスチャの破棄はしない(Strict Mode での再マウントで壊れるため)
160
185
  useEffect(() => {
161
186
  const video = texture.image;
162
187
  return () => {
163
- // 停止検出をクリア
164
188
  if (stallCheckIntervalRef.current) {
165
189
  clearInterval(stallCheckIntervalRef.current);
166
190
  stallCheckIntervalRef.current = null;
167
191
  }
168
- // 再生を停止
169
192
  video.pause();
170
- // ソースを完全にクリア
171
- video.src = "";
172
- video.removeAttribute("src");
173
- video.srcObject = null;
174
- // MediaSourceをリリースするためにloadを呼び出し
175
- video.load();
176
- // テクスチャを破棄
177
- texture.dispose();
178
193
  };
179
194
  }, [texture]);
180
195
  return { texture, videoRef };
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoElement.js","sourceRoot":"","sources":["../../src/hooks/useVideoElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useVideoElement.js","sourceRoot":"","sources":["../../src/hooks/useVideoElement.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrift/world-components",
3
- "version": "0.31.4",
3
+ "version": "0.31.6",
4
4
  "description": "Shared components and utilities for Xrift worlds",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,6 +34,7 @@
34
34
  "@react-three/drei": "^10.0.0",
35
35
  "@react-three/fiber": "^9.0.0",
36
36
  "@react-three/rapier": "^2.0.0",
37
+ "@react-three/uikit": "^1.0.0",
37
38
  "hls.js": "^1.5.0",
38
39
  "react": "^18.0.0 || ^19.0.0",
39
40
  "three": ">=0.176.0"
@@ -42,6 +43,9 @@
42
43
  "@react-three/rapier": {
43
44
  "optional": true
44
45
  },
46
+ "@react-three/uikit": {
47
+ "optional": true
48
+ },
45
49
  "hls.js": {
46
50
  "optional": true
47
51
  }
@@ -50,6 +54,8 @@
50
54
  "@react-three/drei": "^10.7.6",
51
55
  "@react-three/fiber": "^9.4.0",
52
56
  "@react-three/rapier": "^2.2.0",
57
+ "@react-three/uikit": "^1.0.62",
58
+ "@triplex/api": "^0.1.4",
53
59
  "@types/react": "^18.3.12",
54
60
  "@types/three": "^0.181.0",
55
61
  "jsdom": "^28.0.0",