UNPKG

@huddle01/react

Version:

The Huddle01 React SDK offers a comprehensive suite of hooks, methods and event listeners that allow for seamless real-time audio and video communication with minimal coding required.

60 lines (58 loc) 1.71 kB
import { useDevices } from "../chunk-TXOYPRCR.js"; import "../chunk-6UAH4WUQ.js"; // src/components/Audio.tsx import { useEffect, useRef } from "react"; import { jsx } from "react/jsx-runtime"; var Audio = ({ stream, ...rest }) => { const audioElem = useRef(null); const { preferredDevice } = useDevices({ type: "speaker" }); useEffect(() => { const audioRef = audioElem.current; if (stream && audioRef) { audioRef.load(); audioRef.srcObject = stream; } if (audioRef && preferredDevice) { audioRef.setSinkId?.(preferredDevice.deviceId); } return () => { if (audioRef) { audioRef.srcObject = null; } }; }, [audioElem.current, preferredDevice, stream]); return ( // eslint-disable-next-line jsx-a11y/media-has-caption /* @__PURE__ */ jsx("audio", { autoPlay: true, playsInline: true, controls: false, ref: audioElem, ...rest }) ); }; // src/components/Video.tsx import { useEffect as useEffect2, useRef as useRef2 } from "react"; import { jsx as jsx2 } from "react/jsx-runtime"; var Video = ({ stream, ...rest }) => { const videoRef = useRef2(null); useEffect2(() => { const videoObj = videoRef.current; if (videoObj) { videoObj.srcObject = stream; videoObj.onloadedmetadata = async () => { try { await videoObj.play(); } catch (error) { console.error(error); } }; videoObj.onerror = () => { console.error("videoCard() | Error is hapenning..."); }; } }, []); return /* @__PURE__ */ jsx2("video", { ...rest, ref: videoRef, autoPlay: true, muted: true }); }; export { Audio, Video }; //# sourceMappingURL=index.js.map