@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
JavaScript
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