Spaces:
Paused
Paused
Commit
·
05965cb
1
Parent(s):
769f550
restore
Browse files
seamless_server/.DS_Store
CHANGED
Binary files a/seamless_server/.DS_Store and b/seamless_server/.DS_Store differ
|
|
seamless_server/models/.DS_Store
CHANGED
Binary files a/seamless_server/models/.DS_Store and b/seamless_server/models/.DS_Store differ
|
|
streaming-react-app/src/assets/illy2.svg
DELETED
streaming-react-app/src/assets/{illy.svg → seamless.svg}
RENAMED
File without changes
|
streaming-react-app/src/react-xr/ARButton 2.tsx
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
import * as THREE from 'three';
|
2 |
-
import {Button} from '@mui/material';
|
3 |
-
import {useCallback, useEffect, useState} from 'react';
|
4 |
-
import {BufferedSpeechPlayer} from '../createBufferedSpeechPlayer';
|
5 |
-
|
6 |
-
type Props = {
|
7 |
-
bufferedSpeechPlayer: BufferedSpeechPlayer;
|
8 |
-
renderer: THREE.WebGLRenderer | null;
|
9 |
-
onARVisible?: () => void;
|
10 |
-
onARHidden?: () => void;
|
11 |
-
};
|
12 |
-
|
13 |
-
export default function ARButton({
|
14 |
-
bufferedSpeechPlayer,
|
15 |
-
renderer,
|
16 |
-
onARVisible,
|
17 |
-
onARHidden,
|
18 |
-
}: Props) {
|
19 |
-
const [session, setSession] = useState<XRSession | null>(null);
|
20 |
-
const [supported, setSupported] = useState<boolean>(true);
|
21 |
-
|
22 |
-
useEffect(() => {
|
23 |
-
if (!navigator.xr) {
|
24 |
-
setSupported(false);
|
25 |
-
return;
|
26 |
-
}
|
27 |
-
navigator.xr.isSessionSupported('immersive-ar').then((supported) => {
|
28 |
-
setSupported(supported);
|
29 |
-
});
|
30 |
-
}, []);
|
31 |
-
|
32 |
-
const resetBuffers = useCallback(
|
33 |
-
(event: XRSessionEvent) => {
|
34 |
-
const session = event.target;
|
35 |
-
if (!(session instanceof XRSession)) {
|
36 |
-
return;
|
37 |
-
}
|
38 |
-
switch (session.visibilityState) {
|
39 |
-
case 'visible':
|
40 |
-
console.log('Restarting speech player, device is visible');
|
41 |
-
bufferedSpeechPlayer.stop();
|
42 |
-
bufferedSpeechPlayer.start();
|
43 |
-
onARVisible?.();
|
44 |
-
break;
|
45 |
-
case 'hidden':
|
46 |
-
console.log('Stopping speech player, device is hidden');
|
47 |
-
bufferedSpeechPlayer.stop();
|
48 |
-
bufferedSpeechPlayer.start();
|
49 |
-
onARHidden?.();
|
50 |
-
break;
|
51 |
-
}
|
52 |
-
},
|
53 |
-
[bufferedSpeechPlayer],
|
54 |
-
);
|
55 |
-
|
56 |
-
async function onSessionStarted(session: XRSession) {
|
57 |
-
setSession(session);
|
58 |
-
|
59 |
-
session.onvisibilitychange = resetBuffers;
|
60 |
-
session.onend = onSessionEnded;
|
61 |
-
|
62 |
-
await renderer.xr.setSession(session);
|
63 |
-
}
|
64 |
-
|
65 |
-
function onSessionEnded() {
|
66 |
-
setSession(null);
|
67 |
-
}
|
68 |
-
|
69 |
-
const onClick = () => {
|
70 |
-
if (session === null) {
|
71 |
-
navigator.xr!.requestSession('immersive-ar').then(onSessionStarted);
|
72 |
-
} else {
|
73 |
-
session.end();
|
74 |
-
}
|
75 |
-
};
|
76 |
-
return (
|
77 |
-
<Button
|
78 |
-
variant="contained"
|
79 |
-
onClick={onClick}
|
80 |
-
disabled={!supported || renderer == null}
|
81 |
-
sx={{mt: 1}}>
|
82 |
-
{supported
|
83 |
-
? renderer != null
|
84 |
-
? 'Enter AR'
|
85 |
-
: 'Initializing AR...'
|
86 |
-
: 'AR Not Supported'}
|
87 |
-
</Button>
|
88 |
-
);
|
89 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
streaming-react-app/src/types/RoomState 2.ts
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
export type MemberID = string;
|
2 |
-
|
3 |
-
export type Member = {
|
4 |
-
client_id: MemberID;
|
5 |
-
session_id: string;
|
6 |
-
name: string;
|
7 |
-
connection_status: 'connected' | 'disconnected';
|
8 |
-
};
|
9 |
-
|
10 |
-
export type RoomState = {
|
11 |
-
activeTranscoders: number;
|
12 |
-
room_id: string;
|
13 |
-
members: Array<Member>;
|
14 |
-
listeners: Array<MemberID>;
|
15 |
-
speakers: Array<MemberID>;
|
16 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|