diff --git a/packages/desktop/src/providers/StreamProvider.tsx b/packages/desktop/src/providers/StreamProvider.tsx index 144f1b6..f6ddc30 100644 --- a/packages/desktop/src/providers/StreamProvider.tsx +++ b/packages/desktop/src/providers/StreamProvider.tsx @@ -38,6 +38,7 @@ type PeerMap = { }; interface IStreamProvider { peerMap: PeerMap; + userLocalStream?: MediaStream; } const StreamProviderContext = React.createContext({ @@ -54,7 +55,6 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { const [incomingSignals, updateIncomingSignals] = useImmer<{ [peerUserId: string]: any }>({}); const [userLocalStream, setUserLocalStream] = useState(); - const localStreamRef = useRef(null); useEffect(() => { navigator.mediaDevices.enumerateDevices().then((devices) => { @@ -72,31 +72,11 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { }); navigator.mediaDevices - .getUserMedia({ video: false, audio: true }) + .getUserMedia({ video: true, audio: true }) .then((localMediaStream: MediaStream) => { setUserLocalStream(localMediaStream); - - setTimeout(() => { - localMediaStream.getTracks().forEach((track) => { - track.stop(); - }); - }, 2000); - - if (localStreamRef.current) localStreamRef.current.srcObject = localMediaStream; }); - }, [localStreamRef]); - - const handleStartBroadcast = () => { - userLocalStream.getTracks().forEach((track) => { - track.enabled = true; - }); - }; - - const stopBroadcast = () => { - userLocalStream.getTracks().forEach((track) => { - track.enabled = false; - }); - }; + }, []); useEffect(() => { if (userLocalStream) { @@ -196,17 +176,11 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { ); return ( - + {/* handles stream connections */}
- {/* - - */} - - {/*
{/* search + other stuff */} @@ -173,3 +165,33 @@ shadow-xl bg-gray-800 p-2 text-white text-xs" ); } + +// todo if audio only mode, show avatar +// if problem, show error +function UserProfileAvatar() { + const { user } = useAuth(); + const { userLocalStream } = useStreams(); + + const videoRef = useRef(); + + useEffect(() => { + if (videoRef.current && userLocalStream) videoRef.current.srcObject = userLocalStream; + }, [userLocalStream]); + + if (userLocalStream) return