awrtc_browser
Version:
Compatible browser implementation to the Unity asset WebRTC Video Chat. Try examples in build folder
64 lines (63 loc) • 2.21 kB
TypeScript
import { IFrameData, RawFrame } from "../media/RawFrame";
/**Internal use only.
* Bundles all functionality related to MediaStream, Tracks and video processing.
* It creates two HTML elements: Video and Canvas to interact with the video stream
* and convert the visible frame data to Uint8Array for compatibility with the
* unity plugin and all other platforms.
*
*/
export declare class BrowserMediaStream {
static DEBUG_SHOW_ELEMENTS: boolean;
static sUseLazyFrames: boolean;
static sNextInstanceId: number;
private mStream;
get Stream(): MediaStream;
private mBufferedFrame;
private mInstanceId;
private mVideoElement;
get VideoElement(): HTMLVideoElement;
private mCanvasElement;
private mIsActive;
static DEFAULT_FRAMERATE: number;
private mMsPerFrame;
private mFrameRateKnown;
private mLastFrameTime;
/** Number of the last frame (not yet supported in all browsers)
* if it remains at <= 0 then we just generate frames based on
* the timer above
*/
private mLastFrameNumber;
private mHasVideo;
InternalStreamAdded: (stream: BrowserMediaStream) => void;
constructor(stream: MediaStream);
private CheckFrameRate;
SetupElements(): void;
/** Returns the current frame number.
* Treat a return value of 0 or smaller as unknown.
* (Browsers might have the property but
* always return 0)
*/
private GetFrameNumber;
TryGetFrame(): IFrameData;
SetMute(mute: boolean): void;
PeekFrame(): IFrameData;
/** Ensures we have the latest frame ready
* for the next PeekFrame / TryGetFrame calls
*/
private EnsureLatestFrame;
/** checks if the html tag has a newer frame available
* (or if 1/30th of a second passed since last frame if
* this info isn't available)
*/
private HasNewerFrame;
Update(): void;
DestroyCanvas(): void;
Dispose(): void;
CreateFrame(): RawFrame;
private FrameToBuffer;
private SetupVideoElement;
private SetupCanvas;
SetVolume(volume: number): void;
HasAudioTrack(): boolean;
HasVideoTrack(): boolean;
}