import { EventDispatcher } from "../events/EventDispatcher"; import { NetConnection } from "./NetConnection"; import { VideoControlEvent, VideoPlaybackEvent } from "../../base/remoting"; import { SoundTransform } from "../media/SoundTransform"; import { ISoundSource } from "../media/SoundMixer"; import { NetStreamInfo } from "./NetStreamInfo"; import { ASArray } from "../../avm2/nat/ASArray"; import { ASObject } from "../../avm2/nat/ASObject"; import { NetStreamPlayOptions } from "./NetStreamPlayOptions"; import { NetStreamMulticastInfo } from "./NetStreamMulticastInfo"; import { ByteArray } from "../../avm2/natives/byteArray"; import { VideoStreamSettings } from "../media/VideoStreamSettings"; import { Video } from '../media/Video'; import { Microphone } from '../media/Microphone'; import { Camera } from '../media/Camera'; export declare class NetStream extends EventDispatcher implements ISoundSource { _isDirty: boolean; static classInitializer: any; static classSymbols: string[]; static instanceSymbols: string[]; constructor(connection: NetConnection, peerID?: string); _connection: NetConnection; _peerID: string; _id: number; private _resourceName; private _metaData; /** * Only one video can be attached to this |NetStream| object. If we attach another video, then * the previous attachement is lost. (Validated through experimentation.) */ _videoReferrer: Video; private _videoStream; private _contentTypeHint; static DIRECT_CONNECTIONS: string; static CONNECT_TO_FMS: string; attach: (connection: NetConnection) => void; close: () => void; attachAudio: (microphone: Microphone) => void; attachCamera: (theCamera: Camera, snapshotMilliseconds?: number) => void; send: (handlerName: string) => void; bufferTime: number; maxPauseBufferTime: number; backBufferTime: number; backBufferLength: number; step: (frames: number) => void; bufferTimeMax: number; receiveAudio: (flag: boolean) => void; receiveVideo: (flag: boolean) => void; receiveVideoFPS: (FPS: number) => void; pause: () => void; resume: () => void; togglePause: () => void; seek: (offset: number) => void; publish: (name?: string, type?: string) => void; time: number; currentFPS: number; bufferLength: number; liveDelay: number; bytesLoaded: number; bytesTotal: number; decodedFrames: number; videoCodec: number; audioCodec: number; onPeerConnect: (subscriber: NetStream) => boolean; call: () => void; _inBufferSeek: boolean; private _info; private _soundTransform; private _checkPolicyFile; private _client; private _objectEncoding; dispose(): void; _getVideoStreamURL(): string; play(url: string): void; play2(param: NetStreamPlayOptions): void; get info(): NetStreamInfo; get multicastInfo(): NetStreamMulticastInfo; get soundTransform(): SoundTransform; set soundTransform(sndTransform: SoundTransform); get checkPolicyFile(): boolean; set checkPolicyFile(state: boolean); get client(): ASObject; set client(object: ASObject); get objectEncoding(): number; get multicastPushNeighborLimit(): number; set multicastPushNeighborLimit(neighbors: number); get multicastWindowDuration(): number; set multicastWindowDuration(seconds: number); get multicastRelayMarginDuration(): number; set multicastRelayMarginDuration(seconds: number); get multicastAvailabilityUpdatePeriod(): number; set multicastAvailabilityUpdatePeriod(seconds: number); get multicastFetchPeriod(): number; set multicastFetchPeriod(seconds: number); get multicastAvailabilitySendToAll(): boolean; set multicastAvailabilitySendToAll(value: boolean); get farID(): string; get nearNonce(): string; get farNonce(): string; get peerStreams(): ASArray; get audioReliable(): boolean; set audioReliable(reliable: boolean); get videoReliable(): boolean; set videoReliable(reliable: boolean); get dataReliable(): boolean; set dataReliable(reliable: boolean); get audioSampleAccess(): boolean; set audioSampleAccess(reliable: boolean); get videoSampleAccess(): boolean; set videoSampleAccess(reliable: boolean); appendBytes(bytes: ByteArray): void; appendBytesAction(netStreamAppendBytesAction: string): void; get useHardwareDecoder(): boolean; set useHardwareDecoder(v: boolean); get useJitterBuffer(): boolean; set useJitterBuffer(value: boolean); get videoStreamSettings(): VideoStreamSettings; set videoStreamSettings(settings: VideoStreamSettings); invoke(index: number): any; invokeWithArgsArray(index: number, p_arguments: ASArray): any; get inBufferSeek(): boolean; set inBufferSeek(value: boolean); private _invoke; private _notifyVideoControl; processVideoEvent(eventType: VideoPlaybackEvent, data: any): void; stopSound(): void; updateSoundLevels(volume: number): void; } export interface IVideoElementService { registerEventListener(id: number, listener: (eventType: VideoPlaybackEvent, data: any) => void): any; notifyVideoControl(id: number, eventType: VideoControlEvent, data: any): any; }