media-stream-player
Version:
Player built on top of media-stream-library
59 lines (58 loc) • 2.08 kB
TypeScript
import React, { Ref } from 'react';
import { Html5CanvasPipeline, Html5VideoPipeline, HttpMsePipeline, Rtcp, Sdp, TransformationMatrix } from 'media-stream-library';
import { MetadataHandler } from './metadata';
import { Format } from './types';
export type PlayerNativeElement = HTMLVideoElement | HTMLCanvasElement | HTMLImageElement;
export type PlayerPipeline = Html5VideoPipeline | Html5CanvasPipeline | HttpMsePipeline;
export declare enum AxisApi {
AXIS_IMAGE_CGI = "AXIS_IMAGE_CGI",
AXIS_MEDIA_AMP = "AXIS_MEDIA_AMP",
AXIS_MEDIA_CGI = "AXIS_MEDIA_CGI",
AXIS_MJPEG_CGI = "AXIS_MJPEG_CGI"
}
export declare enum Protocol {
HTTP = "http:",
HTTPS = "https:",
WS = "ws:",
WSS = "wss:"
}
export declare const FORMAT_API: Record<Format, AxisApi>;
export interface VapixParameters {
readonly [key: string]: string;
}
export type Range = readonly [number | undefined, number | undefined];
export interface VideoProperties {
readonly el: PlayerNativeElement;
readonly width: number;
readonly height: number;
readonly formatSupportsAudio: boolean;
readonly pipeline?: PlayerPipeline;
readonly media?: ReadonlyArray<{
readonly type: 'video' | 'audio' | 'data';
readonly mime: string;
}>;
readonly volume?: number;
readonly range?: Range;
readonly sensorTm?: TransformationMatrix;
}
interface PlaybackAreaProps {
readonly forwardedRef?: Ref<PlayerNativeElement>;
readonly host: string;
readonly format: Format;
readonly parameters?: VapixParameters;
readonly play?: boolean;
readonly offset?: number;
readonly refresh: number;
readonly onPlaying: (properties: VideoProperties) => void;
readonly onEnded?: () => void;
readonly onSdp?: (msg: Sdp) => void;
readonly onRtcp?: (msg: Rtcp) => void;
readonly metadataHandler?: MetadataHandler;
readonly secure?: boolean;
/**
* Activate automatic retries on RTSP errors.
*/
readonly autoRetry?: boolean;
}
export declare const PlaybackArea: React.FC<PlaybackAreaProps>;
export {};