mediasfu-reactjs
Version:
mediasfu-reactjs – React 18/19 WebRTC SDK for video conferencing, webinars, broadcasts, live streaming, chat, recording, whiteboard, and AI agents. Plug-in prebuilt rooms or build fully custom UIs.
79 lines • 3.14 kB
TypeScript
import React from "react";
import MiniCard from "./MiniCard";
import { ControlsPosition, InfoPosition, Participant, ControlMediaOptions, AudioDecibels, CoHostResponsibility, ShowAlert } from "../../@types/types";
import { Socket } from "socket.io-client";
import type { LiveSubtitle } from '../../producers/socketReceiveMethods/translationReceiveMethods';
export interface AudioCardParameters {
audioDecibels: AudioDecibels[];
participants: Participant[];
socket: Socket;
coHostResponsibility: CoHostResponsibility[];
roomName: string;
showAlert?: ShowAlert;
coHost: string;
islevel: string;
member: string;
eventType: string;
getUpdatedAllParams(): AudioCardParameters;
}
export interface AudioCardOptions {
controlUserMedia?: (options: ControlMediaOptions) => Promise<void>;
customStyle?: React.CSSProperties;
name: string;
barColor?: string;
textColor?: string;
imageSource?: string;
roundedImage?: boolean;
imageStyle?: React.CSSProperties;
showControls?: boolean;
showInfo?: boolean;
videoInfoComponent?: React.ReactNode;
videoControlsComponent?: React.ReactNode;
controlsPosition?: ControlsPosition;
infoPosition?: InfoPosition;
participant: Participant;
backgroundColor?: string;
audioDecibels?: AudioDecibels;
parameters: AudioCardParameters;
cardProps?: React.HTMLAttributes<HTMLDivElement>;
infoOverlayProps?: React.HTMLAttributes<HTMLDivElement>;
nameContainerProps?: React.HTMLAttributes<HTMLDivElement>;
nameTextProps?: React.HTMLAttributes<HTMLParagraphElement>;
waveformContainerProps?: React.HTMLAttributes<HTMLDivElement>;
waveformBarStyle?: React.CSSProperties;
waveformBarProps?: React.HTMLAttributes<HTMLDivElement>;
waveformHeights?: {
silent?: number;
active?: number;
};
waveformDurations?: number[];
waveformBarCount?: number;
renderWaveformBar?: (options: {
index: number;
isActive: boolean;
height: number;
style: React.CSSProperties;
props: React.HTMLAttributes<HTMLDivElement>;
}) => React.ReactNode;
controlsOverlayProps?: React.HTMLAttributes<HTMLDivElement>;
controlButtonProps?: {
audio?: React.ButtonHTMLAttributes<HTMLButtonElement>;
video?: React.ButtonHTMLAttributes<HTMLButtonElement>;
};
audioEnabledIcon?: React.ReactNode;
audioDisabledIcon?: React.ReactNode;
videoEnabledIcon?: React.ReactNode;
videoDisabledIcon?: React.ReactNode;
fallbackMiniCardProps?: Partial<React.ComponentProps<typeof MiniCard>>;
imageProps?: React.ImgHTMLAttributes<HTMLImageElement>;
showWaveformWhenMuted?: boolean;
isDarkMode?: boolean;
/** Live subtitle for displaying translated speech */
liveSubtitle?: LiveSubtitle | null | (() => LiveSubtitle | null);
/** Whether to show subtitles on this card */
showSubtitles?: boolean;
}
export type AudioCardType = (options: AudioCardOptions) => React.JSX.Element;
declare const AudioCard: React.FC<AudioCardOptions>;
export default AudioCard;
//# sourceMappingURL=AudioCard.d.ts.map