@huddle01/web-core
Version:
The Huddle01 Javascript SDK offers a comprehensive suite of methods and event listeners that allow for seamless real-time audio and video communication with minimal coding required.
60 lines (57 loc) • 1.5 kB
JavaScript
;
// src/helpers/index.ts
var getMediaStreamKind = (stream) => {
let kind = null;
const tracks = stream.getTracks();
for (const track of tracks) {
if (track.kind === "audio") {
kind = "audio";
break;
}
if (track.kind === "video") {
kind = "video";
break;
}
}
if (!kind) {
throw new Error("Stream Kind Not Found");
}
return kind;
};
var getMediaDeviceKind = (track) => {
if (track.kind === "audio") {
return "mic";
}
if (track.kind === "video") {
const settings = track.getSettings();
if (settings.displaySurface) {
return "screen";
}
return "cam";
}
return "cam";
};
var getMediaTrack = (data) => {
const { stream, kind } = data;
const tracks = stream.getTracks();
for (const track of tracks) {
if (track.kind === kind) {
return track;
}
}
throw new Error("Track Not Found");
};
var estimateSize = (obj) => {
const str = JSON.stringify(obj);
return new TextEncoder().encode(str).length;
};
var isBrowser = () => typeof window !== "undefined";
var isNode = () => typeof global !== "undefined";
var isReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative";
exports.estimateSize = estimateSize;
exports.getMediaDeviceKind = getMediaDeviceKind;
exports.getMediaStreamKind = getMediaStreamKind;
exports.getMediaTrack = getMediaTrack;
exports.isBrowser = isBrowser;
exports.isNode = isNode;
exports.isReactNative = isReactNative;