/// /// import { MediaDevices, Navigator } from '../imports/mediasoup'; import { LocalMediaStreamOptions } from './stream'; import { LocalAudioStream } from './stream/local/audio'; import { DataStreamOptions, LocalDataStream } from './stream/local/data'; import { LocalVideoStream } from './stream/local/video'; export declare class StreamFactory { readonly navigator: Navigator; private gst; constructor(props?: ConstructorParameters[0]); registerMediaDevices(props: ConstructorParameters[0]): void; registerNodeGtkGst(gst: any): void; registerAudioTestSrc({ wave, rtpProcessor, gst, }?: { wave?: string; rtpProcessor?: (b: Buffer) => Buffer; gst?: any; }): Promise<() => void>; registerVideoTestSrc({ keyframeIntervalSec, codec, gst, }: { keyframeIntervalSec?: number; codec: 'vp8' | 'h264'; gst?: any; }): Promise<() => void>; /** * @description [japanese] CameraのVideoStreamを作成する */ createCameraVideoStream(options?: VideoMediaTrackConstraints & Partial): Promise; /** * @description [japanese] マイクのAudioStreamを作成する */ createMicrophoneAudioStream(options?: AudioMediaTrackConstraints & Partial): Promise; /** * @description [japanese] * PCブラウザでのみ利用可能なAPI。 * VideoStreamは常に取得される(AudioStreamのみ取得することはできない) * audioオプションを有効にするとAudioStreamを取得することができる。 * audioオプションはWindowsのChromeにしか対応しておらず、 * それ以外の環境では有効にしても戻り値のaudioにはundefinedが返される。 */ createDisplayStreams(options?: T): Promise<{ video: LocalVideoStream; audio: T extends { audio: infer U; } ? U extends false | undefined | null ? undefined : LocalAudioStream | undefined : undefined; }>; /** * @description [japanese] DataStreamを作成する */ createDataStream(options?: DataStreamOptions): Promise; /** * @description [japanese] CameraのVideoStreamとマイクのAudioStreamを作成する */ createMicrophoneAudioAndCameraStream({ audio, video, }?: { audio?: AudioMediaTrackConstraints & Partial; video?: VideoMediaTrackConstraints & Partial; }): Promise<{ audio: LocalAudioStream; video: LocalVideoStream; }>; } export declare const SkyWayStreamFactory: StreamFactory; /**@internal */ export declare class MediaDevice { id: string; label: string; kind: MediaDeviceKind; /**@private */ constructor(info: MediaDeviceInfo); } /** * @description [japanese] ブラウザによって対応しているパラメータが異なるので、必要に応じて確認してください */ export declare type VideoMediaTrackConstraints = { aspectRatio?: ConstrainDouble; facingMode?: ConstrainDOMString; frameRate?: ConstrainDouble; height?: ConstrainULong; width?: ConstrainULong; deviceId?: ConstrainDOMString; }; /** * @description [japanese] ブラウザによって対応しているパラメータが異なるので、必要に応じて確認してください */ export declare type AudioMediaTrackConstraints = { autoGainControl?: ConstrainBoolean; channelCount?: ConstrainULong; echoCancellation?: ConstrainBoolean; latency?: ConstrainDouble; noiseSuppression?: ConstrainBoolean; sampleRate?: ConstrainULong; sampleSize?: ConstrainULong; suppressLocalAudioPlayback?: ConstrainBoolean; deviceId?: ConstrainDOMString; /** * @description [english] Non-standard. Check browser support before using. */ volume?: number; }; export declare type DisplayMediaTrackConstraints = VideoMediaTrackConstraints & { /** @description [japanese] 選択画面で最初に表示するキャプチャー対象の指定*/ displaySurface?: 'monitor' | 'window' | 'browser'; }; export declare type DisplayStreamOptions = { audio?: (AudioMediaTrackConstraints & Partial>) | boolean; video?: DisplayMediaTrackConstraints & VideoMediaTrackConstraints & Partial>; }; //# sourceMappingURL=factory.d.ts.map