Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Publisher

Packs local media streams. Participants can publish it to a session. Initialized with OpenVidu.initPublisher method

Available event listeners (and events dispatched)

Hierarchy

Index

Properties

accessAllowed

accessAllowed: boolean = false

Whether the Publisher has been granted access to the requested input devices or not

id

id: string

id attribute of the DOM video element displaying the Publisher/Subscriber's stream. This property is only defined if:

isSubscribedToRemote

isSubscribedToRemote: boolean = false

Whether you have called Publisher.subscribeToRemote with value true or false (false by default)

remote

remote: boolean

Whether the Stream represented in the DOM is local or remote

session

session: Session

The Session to which the Publisher belongs

stream

stream: Stream

The Stream represented in the DOM by the Publisher/Subscriber

targetElement

targetElement: HTMLElement

The DOM HTMLElement assigned as target element when creating the video for the Publisher/Subscriber. This property is only defined if:

videos

videos: StreamManagerVideo[] = []

All the videos displaying the Stream of this Publisher/Subscriber

Methods

addVideoElement

  • addVideoElement(video: HTMLVideoElement): number
  • Makes video element parameter display this stream. This is useful when you are managing the video elements on your own

    Calling this method with a video already added to other Publisher/Subscriber will cause the video element to be disassociated from that previous Publisher/Subscriber and to be associated to this one.

    Parameters

    • video: HTMLVideoElement

    Returns number

    1 if the video wasn't associated to any other Publisher/Subscriber and has been successfully added to this one. 0 if the video was already added to this Publisher/Subscriber. -1 if the video was previously associated to any other Publisher/Subscriber and has been successfully disassociated from that one and properly added to this one.

createVideoElement

  • createVideoElement(targetElement?: string | HTMLElement, insertMode?: VideoInsertMode): HTMLVideoElement
  • Creates a new video element displaying this stream. This allows you to have multiple video elements displaying the same media stream.

    Events dispatched

    The Publisher/Subscriber object will dispatch a videoElementCreated event once the HTML video element has been added to DOM. See VideoElementEvent

    Parameters

    • Optional targetElement: string | HTMLElement

      HTML DOM element (or its id attribute) in which the video element of the Publisher/Subscriber will be inserted

    • Optional insertMode: VideoInsertMode

      How the video element will be inserted accordingly to targetElemet

    Returns HTMLVideoElement

    The created HTMLVideoElement

off

on

once

publishAudio

  • publishAudio(value: boolean): void
  • Publish or unpublish the audio stream (if available). Calling this method twice in a row passing same value will have no effect

    Events dispatched

    Only if Session.publish(Publisher) has been called for this Publisher

    The Session object of the local participant will dispatch a streamPropertyChanged event with changedProperty set to "audioActive" and reason set to "publishAudio" The Publisher object of the local participant will also dispatch the exact same event

    The Session object of every other participant connected to the session will dispatch a streamPropertyChanged event with changedProperty set to "audioActive" and reason set to "publishAudio" The respective Subscriber object of every other participant receiving this Publisher's stream will also dispatch the exact same event

    See StreamPropertyChangedEvent to learn more.

    Parameters

    • value: boolean

      true to publish the audio stream, false to unpublish it

    Returns void

publishVideo

  • publishVideo(value: boolean): void
  • Publish or unpublish the video stream (if available). Calling this method twice in a row passing same value will have no effect

    Events dispatched

    Only if Session.publish(Publisher) has been called for this Publisher

    The Session object of the local participant will dispatch a streamPropertyChanged event with changedProperty set to "videoActive" and reason set to "publishVideo" The Publisher object of the local participant will also dispatch the exact same event

    The Session object of every other participant connected to the session will dispatch a streamPropertyChanged event with changedProperty set to "videoActive" and reason set to "publishVideo" The respective Subscriber object of every other participant receiving this Publisher's stream will also dispatch the exact same event

    See StreamPropertyChangedEvent to learn more.

    Parameters

    • value: boolean

      true to publish the video stream, false to unpublish it

    Returns void

replaceTrack

  • replaceTrack(track: MediaStreamTrack): Promise<any>
  • Replaces the current video or audio track with a different one. This allows you to replace an ongoing track with a different one without having to renegotiate the whole WebRTC connection (that is, initializing a new Publisher, unpublishing the previous one and publishing the new one).

    You can get this new MediaStreamTrack by using the native Web API or simply with OpenVidu.getUserMedia method.

    WARNING: this method has been proven to work, but there may be some combinations of published/replaced tracks that may be incompatible between them and break the connection in OpenVidu Server. A complete renegotiation may be the only solution in this case

    Parameters

    • track: MediaStreamTrack

      The MediaStreamTrack object to replace the current one. If it is an audio track, the current audio track will be the replaced one. If it is a video track, the current video track will be the replaced one.

    Returns Promise<any>

    A Promise (to which you can optionally subscribe to) that is resolved if the track was successfully replaced and rejected with an Error object in other case

subscribeToRemote

  • subscribeToRemote(value?: undefined | false | true): void
  • Call this method before Session.publish if you prefer to subscribe to your Publisher's remote stream instead of using the local stream, as any other user would do.

    Parameters

    • Optional value: undefined | false | true

    Returns void

updatePublisherSpeakingEventsOptions

  • updatePublisherSpeakingEventsOptions(publisherSpeakingEventsOptions: any): void
  • Updates the current configuration for the PublisherSpeakingEvent feature and the StreamManagerEvent.streamAudioVolumeChange feature for this specific StreamManager audio stream, overriding the global options set with OpenVidu.setAdvancedConfiguration. This way you can customize the audio events options for each specific StreamManager and change them dynamically.

    Parameters

    • publisherSpeakingEventsOptions: any

      New options to be applied to this StreamManager's audio stream. It is an object which includes the following optional properties:

      • interval: (number) how frequently the analyser polls the audio stream to check if speaking has started/stopped or audio volume has changed. Default 100 (ms)
      • threshold: (number) the volume at which publisherStartSpeaking, publisherStopSpeaking events will be fired. Default -50 (dB)

    Returns void

Generated using TypeDoc