new Stream()
Fires:
- Stream#event:audioAmplitude
- Stream#event:audioAmplitudeInfo
- Stream#event:muteStateChange
- Stream#event:backgroundSubstractionStopVisibilityChange
- Stream#event:backgroundSubstractionStopComputeTime
- Stream#event:AIESnapshot
- Stream#event:AIELog
- Stream#event:flowStatusChanged
- Stream#event:audioFlowStatusChanged
- Stream#event:videoFlowStatusChanged
- Stream#event:remoteAudioFlowStatusChanged
- Stream#event:remoteVideoFlowStatusChanged
- Stream#event:release
Extends
Methods
- 
    <static> createDisplayMediaStream(displayMediaStreamConstraints, forceExtensionOnChrome)
- 
    
    NEW FUNCTION Helper function to create a screensharing stream : when possible it will use getDisplayMedia() function 
 This function is the evolution of createScreensharingStream(), parameters are based on getDisplayMedia()Parameters:Name Type Description displayMediaStreamConstraintsObject displayMediaStreamConstraints as defined in : https://w3c.github.io/mediacapture-screen-share/#displaymediastreamconstraints 
 For retro compatibility with createScreensharingStream() function, value can also be set as captureSourceType :This enables to choose what the user will be proposed to share between screen, applications, browser tab and audio.
 Usage is different depending the browser :
 -on Chrome, captureSourceTypevalue value is an array that can be ["screen", "window", "tab", "audio"]. This array is used to restrict what will be proposed to the user
 -on Firefox, captureSourceTypevalue value is a string that can be "screen", "window" or "application". This string is used to choose what will be proposed to the userforceExtensionOnChromeBoolean This can be used to force the usage of Chrome extension (all getDisplayMedia constraints are not yet implemented and extension usage can still be interesting depending on use cases) Returns:Created stream in promise - Type
- Promise.<Stream>
 
- 
    <static> createScreensharingStream(captureSourceType)
- 
    
    Helper function to create a screensharing stream : Check also createDisplayMediaStream() 
 The feature works both on Firefox and Chrome
 On Chrome, the ApiRTC screensharing extention needs to be installed beforehandParameters:Name Type Description captureSourceTypeObject This enables to choose what the user will be propose to share between screen, applications, browser tab and audio. 
 Usage is different depending the browser :
 -on Chrome, captureSourceTypevalue value is an array that can be ["screen", "window", "tab", "audio"]. This array is used to restrict what will be proposed to the user
 -on Firefox, captureSourceTypevalue value is a string that can be "screen", "window" or "application". This string is used to choose what will be proposed to the userReturns:Created stream in promise - Type
- Promise.<Stream>
 
- 
    <static> createStreamFromMediaStream(mediaStream)
- 
    
    Helper function to create a new stream using an existing mediaStream Parameters:Name Type Description mediaStreamMediaStream mediaStream to use to create a Stream Returns:Created stream in promise - Type
- Promise.<Stream>
 
- 
    <static> createStreamFromUserMedia(audioInput, videoInput, constraints, options)
- 
    
    Helper function to create a new stream using user's video & audio sources Parameters:Name Type Description audioInputMediaDevice audioInput device id, can be null. set to false if audio track is not requested videoInputMediaDevice videoInput device id, can be null. set to false if video track is not requested constraintsobject other MediaTrackConstraints that can be specified for stream optionsCreateStreamFromUserMediaOptions Returns:Created stream in promise - Type
- Promise.<Stream>
 
- 
    <static> getAvailableEvents()
- 
    
    Returns available events for this class Returns:- Type
- Array.<string>
 
- 
    <static> getLocalStreams()
- 
    
    Returns local streams list Returns:local streams list - Type
- Array.<Stream>
 
- 
    <static> getStream(streamId)
- 
    
    Returns local stream with its identifier Parameters:Name Type Description streamIdstring Returns:stream - Type
- Stream
 
- 
    activateAIAnnotations()
- 
    
    Activates the AI annotation filter process if options were correctly provided on stream creation. Returns:- Type
- void
 
- 
    activateAILogs( [minLogPeriod])
- 
    
    Activates a log return event on each new annotation information Parameters:Name Type Argument Default Description minLogPeriodnumber <optional> 
 0 the minimal time (in seconds) between two logs Returns:- Type
- void
 
- 
    activateAISnapshots( [minSnapshotPeriod])
- 
    
    Activates a snapshot of frames with AI annotations return event Parameters:Name Type Argument Default Description minSnapshotPeriodnumber <optional> 
 0 the minimal time (in seconds) between two snapshots Returns:- Type
- void
 
- 
    addInDiv(divId, mediaEltId, style, muted)
- 
    
    Add stream to DIV elementz Parameters:Name Type Description divIdstring Div Id where to add the stream mediaEltIdstring Id of the media element that will be added in the div stylestring Json string with format {width : "160px", height : "120px"} to define width and height of the media element mutedboolean Boolean to set if media element is muted or not Returns:- Type
- void
 
- 
    applyAudioProcessor(audioProcessorType)
- 
    
    A promise for applying a stream filter 
 Possible filters are "none", ”blur” : people background is blurred, people background is replaced by a background imageParameters:Name Type Description audioProcessorType'none' | 'noiseReduction' type of filter to be applied . Value can be 'none'||'noiseReduction' Returns:Created Stream with applied filter in a promise - Type
- Promise.<(Stream|ApplyAudioProcessorError)>
 
- 
    applyConstraints(constraints)
- 
    
    Resets streams constraints and then applies specified constraints to specified values as webrtc applyConstraints function. This function also work on a remote stream. Parameters:Name Type Description constraintsMediaStreamConstraints Object containing constraints to modify and their values to apply Returns:- Type
- Promise.<void>
 
- 
    applyVideoProcessor(videoProcessorType, options)
- 
    
    A promise for applying a stream filter 
 Possible filters are "none", "blur" : people background is blurred, "backgroundImage" : people background is replaced by a background imageParameters:Name Type Description videoProcessorType'none' | 'blur' | 'backgroundImage' type of filter to be applied . Value can be 'none'||'blur'||'backgroundImage' optionsVideoProcessorOptions Returns:Created Stream with applied filter in a promise - Type
- Promise.<(Stream|ApplyVideoProcessorError)>
 
- 
    attachToElement(element)
- 
    
    Attaches stream to video DOM element Parameters:Name Type Description elementHTMLElement Returns:- Type
- void
 
- 
    backgroundImage()
- 
    
    Creates a stream which is a clone version of the actual stream with an image in background. Properties:Name Type Description imageUrlstring url of the image to apply in background Returns:- Type
- Promise.<Stream>
 
- 
    blur()
- 
    
    Creates a stream which is a blurred version of the actual stream. Returns:- Type
- Promise.<Stream>
 
- 
    disableAudio(applyRemotely)
- 
    
    Disables this stream's audio 
 If this stream is published to another contact, the stream will also be disabled on the contact's side
 If this stream is subscribed from another contact, disabling the stream will have no impact on the contact's sideParameters:Name Type Default Description applyRemotelyboolean false This can be used on a remote stream. Set to true if disableAudio has to be applied remotely. ie : it will be applied for all conversation participants Returns:- Type
- Promise.<void>
 
- 
    disableAudioAnalysis()
- 
    
    Disables audio analysis of Stream 
 The Stream#audioAmplitude event will no longer be emittedReturns:- Type
- void
 
- 
    disableVideo(applyRemotely)
- 
    
    Disables this stream's video 
 If this stream is published to another contact, the stream will also be disabled on the contact's side
 If this stream is subscribed from another contact, disabling the stream will have no impact on the contact's sideParameters:Name Type Default Description applyRemotelyboolean false This can be used on a remote stream. Set to true if disableVideo has to be applied remotely. ie : it will be applied for all conversation participants Returns:- Type
- Promise.<void>
 
- 
    enableAudio(applyRemotely)
- 
    
    Enables this stream's audio 
 If this stream is published to another contact, the stream will also be enabled on the contact's side
 If this stream is subscribed from another contact, enabling the stream will have no impact on the contact's side, moreover, it will not enable the stream if it has been disabled by the contactParameters:Name Type Default Description applyRemotelyboolean false This can be used on a remote stream. Set to true if enableAudio has to be applied remotely. ie : it will be applied for all conversation participants Returns:- Type
- Promise.<void>
 
- 
    enableAudioAnalysis()
- 
    
    Enables audio analysis of Stream 
 This allows the Stream#audioAmplitude event to be emittedReturns:- Type
- void
 
- 
    enableVideo(applyRemotely)
- 
    
    Enables this stream's video 
 If this stream is published to another contact, the stream will also be enabled on the contact's side
 If this stream is subscribed from another contact, enabling the stream will have no impact on the contact's side, moreover, it will not enable the stream if it has been disabled by the contactParameters:Name Type Default Description applyRemotelyboolean false This can be used on a remote stream. Set to true if enableVideo has to be applied remotely. ie : it will be applied for all conversation participants Returns:- Type
- Promise.<void>
 
- 
    getAudioFlowStatus()
- 
    
    Returns the audio flow status of this stream (i.e. if you enabled/disabled it or if the track is muted or not) 
 The flow status returned is corresponding to this stream instance, if this is a subscribed stream do not be confused with the publisher flow status.Returns:
- 
    getCapabilities()
- 
    
    Get all capabilities that may be modified for this stream and their accepted value ranges. This function also work for a remote stream. Returns:- Type
- Promise.<MediaStreamCapabilities>
 
- 
    getConstraints()
- 
    
    Get applied constraints on this stream. This function also work for a remote stream. Returns:- Type
- Promise.<MediaStreamConstraints>
 
- 
    getContact()
- 
    
    Gets the stream's owner, returns null if the stream is local Returns:- Type
- Contact
 
- 
    getConversations()
- 
    
    Returns conversations the stream is published in Returns:- Type
- Array.<Conversation>
 
- 
    getData()
- 
    
    Gets the stream's MediaStream object, returns null if the stream has no data Returns:- Type
- MediaStream
 
- 
    getId()
- 
    
    Returns stream ID. Returns:Stream ID. - Type
- string
 
- 
    getLabels()
- 
    
    Returns the labels of device source used for the stream. Returns:- Type
- StreamLabels
 
- 
    getOwner()
- 
    
    Returns the owner of the stream reprensented by this one. Returns:
- 
    getRemoteAudioFlowStatus()
- 
    
    To use on subscribed streams only 
 Returns the audio flow status of the stream on publisher side (i.e. if publisher enabled/disabled it or if the track is muted or not)Returns:- Type
- Promise.<MediaStreamTrackFlowStatus>
 
- 
    getRemoteVideoFlowStatus()
- 
    
    To use on subscribed streams only 
 Returns the video flow status of the stream on publisher side (i.e. if publisher enabled/disabled it or if the track is muted or not)Returns:- Type
- Promise.<MediaStreamTrackFlowStatus>
 
- 
    getSettings()
- 
    
    Get all capabilities for this stream and their actual values. This function also work for a remote stream. Returns:- Type
- Promise.<MediaTrackSettings>
 
- 
    getType()
- 
    
    Returns this stream's type Returns:type - Type
- string
 
- 
    getVideoFlowStatus()
- 
    
    Returns the video flow status of this stream (i.e. if you enabled/disabled it or if the track is muted or not) 
 The flow status returned is corresponding to this stream instance, if this is a subscribed stream do not be confused with the publisher flow status.Returns:
- 
    hasAudio()
- 
    
    Checks if stream has at least one audio track Returns:- Type
- boolean
 
- 
    hasData()
- 
    
    Checks if stream has mediastream tracks or data Returns:- Type
- boolean
 
- 
    hasVideo()
- 
    
    Checks if stream has at least one video track Returns:- Type
- boolean
 
- 
    isAudioEnabled()
- 
    
    Returns whether the audio track is enabled. Returns:true if the audio track is enabled, false otherwise. - Type
- boolean
 
- 
    isAudioMuted()
- 
    
    Returns whether the audio track is muted. Returns:true if the audio track is muted, false otherwise. - Type
- boolean
 
- 
    isScreensharing()
- 
    
    Checks if stream is a screenshare Returns:- Type
- boolean
 
- 
    isScreensharingRemoteAccess()
- 
    
    Checks if stream is a screenshare related to a remote access Returns:- Type
- boolean
 
- 
    isVideoEnabled()
- 
    
    Returns whether the video track is enabled. Returns:true if the video track is enabled, false otherwise. - Type
- boolean
 
- 
    isVideoMuted()
- 
    
    Returns whether the video track in muted. Returns:true if the video track is muted, false otherwise. - Type
- boolean
 
- 
    muteAudio()
- 
    
    Deprecated - Mutes this stream's audio 
 If this stream is published to another contact, the stream will also be muted on the contact's side
 If this stream is subscribed from another contact, muting the stream will have no impact on the contact's sideReturns:- Type
- Void
 
- 
    muteVideo()
- 
    
    Deprecated - Mutes this stream's video 
 If this stream is published to another contact, the stream will also be muted on the contact's side
 If this stream is subscribed from another contact, muting the stream will have no impact on the contact's sideReturns:- Type
- Void
 
- 
    on(listener)
- 
    
    Adds a listener to a Observable event Parameters:Name Type Description listenerfunction - Inherited From:
- Overrides:
 Returns:this instance for chaining - Type
- Observable
 
- 
    pauseRecord()
- 
    
    Pause the recording of the stream with a promise Returns:- Type
- Promise.<void>
 
- 
    release(options)
- 
    
    Release all tracks (either video or audio) used by this stream Parameters:Name Type Description optionsStreamReleaseOptions Returns:- Type
- Void
 
- 
    removeFromDiv(divId, mediaEltId)
- 
    
    Remove stream from DIV element Parameters:Name Type Description divIdstring Div Id where to add the stream mediaEltIdstring Id of the media element that will be added in the div Returns:- Type
- void
 
- 
    removeListener(eventType, listener)
- 
    
    Remove existing listener to Observable event Parameters:Name Type Description eventTypeString listenerfunction - Inherited From:
- Overrides:
 Returns:this instance for chaining - Type
- Observable
 
- 
    resumeRecord()
- 
    
    Resume the recording of the stream with a promise Returns:- Type
- Promise.<void>
 
- 
    startNoiseReduction()
- 
    
    Creates a stream with a noise reduction filter applied. Returns:- Type
- Promise.<Stream>
 
- 
    startRecord(options)
- 
    
    Starts the recording of the stream with a promise 
 The stream is recorded locally
 The stream can only have one record process active at a timeParameters:Name Type Description optionsMediaRecorderOptions Returns:- Type
- Promise.<void>
 
- 
    stopAIAnnotations()
- 
    
    Stops the AI annotation filter process Returns:- Type
- void
 
- 
    stopAILogs()
- 
    
    Stops the AI annotation logs process Returns:- Type
- void
 
- 
    stopAISnapshots()
- 
    
    Stops the AI annotation snapshot process Returns:- Type
- void
 
- 
    stopNoiseReduction()
- 
    
    Stops the noised reduction filter if started for this stream and return the original stream. 
- 
    stopRecord()
- 
    
    Stops the recording of the stream with a promise Returns:Blob of the recorded stream in promise - Type
- Promise.<Blob>
 
- 
    takePhoto()
- 
    
    Takes a snapshot of the local stream and returns it as an Image object. Returns:- Type
- Promise.<Image>
 
- 
    takeSnapshot( [options])
- 
    
    Takes a dataURI/png snapshot from stream Parameters:Name Type Argument Description optionsSnapshotOptions <optional> 
 Returns:media PNG dataURI in promise - Type
- Promise.<string>
 
- 
    unBackgroundImage()
- 
    
    Stops the background image process if started for this stream and return the original stream. 
 Can be applied on original Stream or on the backgrounded streamReturns:- Type
- Promise.<Stream>
 
- 
    unblur()
- 
    
    Stops the blur process if started for this stream and return the original stream. 
 Can be applied on original Stream or on the blurred streamReturns:- Type
- Promise.<Stream>
 
- 
    unmuteAudio()
- 
    
    Deprecated - Unmutes this stream's audio 
 If this stream is published to another contact, the stream will also be unmuted on the contact's side
 If this stream is subscribed from another contact, unmuting the stream will have no impact on the contact's side, moreover, it will not unmute the stream if it has been muted by the contactReturns:- Type
- Void
 
- 
    unmuteVideo()
- 
    
    Deprecated - Unmutes this stream's video 
 If this stream is published to another contact, the stream will also be unmuted on the contact's side
 If this stream is subscribed from another contact, muting the stream will have no impact on the contact's side, moreover, it will not unmute the stream if it has been muted by the contactReturns:- Type
- Void
 
Events
- 
    activeStateChange
- 
    
    Emitted when stream video or audio active state changed Type: objectProperties:Name Type Description streamIdnumber stream identifier. callIdcallId identifier of related call. typestring 'video' or 'audio' activeboolean new state 
- 
    AIELog
- 
    
    Emitted when a log is generated after a new AI annotation Type: objectProperties:Name Type Description logstring log informations 
- 
    AIESnapshot
- 
    
    Emitted when a snapshot is taken of stream with AI annotation Type: objectProperties:Name Type Description imageImage The snapshot 
- 
    audioAmplitude
- 
    
    Stream current audio amplitude obtained from audio analysis Type: number
- 
    audioAmplitudeInfo
- 
    
    Stream current audio amplitude & speaking status info obtained from audio analysis Type: objectProperties:Name Type Description amplitudenumber amplitude. isSpeakingboolean is sound/speaking detected considering threshold 
- 
    audioFlowStatusChanged
- 
    
    Emitted when either enabled or muted value changed for the audio track of the stream Type: MediaStreamTrackFlowStatus
- 
    backgroundSubstractionStopComputeTime
- 
    
    Emitted when the background substraction process is stopped due to bad filter frame rate Type: objectProperties:Name Type Description streamIdnumber stream identifier. userMediaStreamIdstring user media stream identifier 
- 
    backgroundSubstractionStopVisibilityChange
- 
    
    Emitted when a filter is applied on stream and the user hides current navigator tab Type: objectProperties:Name Type Description streamIdnumber stream identifier. userMediaStreamIdstring user media stream identifier 
- 
    constraintsChanged
- 
    
    Emitted, on a stream if constraints changed Type: object
- 
    flowStatusChanged
- 
    
    Emitted when either enabled or muted value changed for a track of the stream Type: MediaStreamTrackFlowStatusWithType
- 
    muteStateChange
- 
    
    Deprecated - Emitted when stream video or audio mute state changed Type: objectProperties:Name Type Description streamIdnumber stream identifier. userMediaStreamIdstring user media stream identifier (optional). callIdstring related call identifier (optional). typestring 'video' or 'audio' mutedboolean new state 
- 
    release
- 
    
    Emitted, on a stream release Type: object
- 
    remoteAudioFlowStatusChanged
- 
    
    Emitted, on a stream you subscribed, when either enabled or muted value changed for the audio track by the publisher Type: MediaStreamTrackFlowStatus
- 
    remoteVideoFlowStatusChanged
- 
    
    Emitted, on a stream you subscribed, when either enabled or muted value changed for the video track by the publisher Type: MediaStreamTrackFlowStatus
- 
    stopped
- 
    
    Emitted when user media is released or when related call is terminated. Type: objectProperties:Name Type Description streamIdnumber stream identifier. userMediaStreamIdstring user media stream identifier (optional). callIdstring related call identifier (optional). 
- 
    trackStopped
- 
    
    Signals a stream track was stopped (known issue: does not work on Firefox) Type: objectProperties:Name Type Description typestring 'video' or 'audio' idstring track id 
- 
    videoFlowStatusChanged
- 
    
    Emitted when either enabled or muted value changed for the video track of the stream Type: MediaStreamTrackFlowStatus