Summary

Functions

Returns a specification to start this module under a supervisor.

Closes the producer. Triggers a "producerclose" event in all its associated consumers. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-close

Tells whether the given producer is closed on the local node.

Dump internal stat for Producer.

Returns current RTC statistics of the producer. Check the RTC Statistics section for more details (TypeScript-oriented, but concepts apply here as well).

Producer identifier.

The media kind

Pauses the producer (no RTP is sent to its associated consumers). Triggers a "producerpause" event in all its associated consumers. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-pause

Resumes the producer (RTP is sent again to its associated consumers). Triggers a "producerresume" event in all its associated consumers. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-resume

The score of each RTP stream being received, representing their tranmission quality. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-score

Types

event_type()

@type event_type() ::
  :on_close | :on_pause | :on_resume | :on_video_orientation_change | :on_score

mediaKind()

@type mediaKind() :: String.t()

audio or video

producerType()

@type producerType() :: String.t()

https://mediasoup.org/documentation/v3/mediasoup/api/#ProducerType "simple" or "simulcast" or "svc"

rtpParameters()

@type rtpParameters() :: map()

t()

@type t() :: %Mediasoup.Producer{
  id: String.t(),
  kind: mediaKind(),
  pid: pid(),
  rtp_parameters: rtpParameters(),
  type: producerType()
}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

close(producer)

@spec close(t()) :: :ok

Closes the producer. Triggers a "producerclose" event in all its associated consumers. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-close

closed?(producer)

@spec closed?(t()) :: boolean()

Tells whether the given producer is closed on the local node.

dump(producer)

@spec dump(t()) :: map()

Dump internal stat for Producer.

event(producer, listener, event_types \\ [:on_close, :on_pause, :on_resume, :on_score])

@spec event(t(), pid(), event_types :: [event_type()]) ::
  {:ok} | {:error, :terminated}

Starts observing event.

get_stats(producer)

@spec get_stats(t()) :: list() | {:error, reason :: term()}

Returns current RTC statistics of the producer. Check the RTC Statistics section for more details (TypeScript-oriented, but concepts apply here as well).

id(map)

@spec id(t()) :: String.t()

Producer identifier.

kind(map)

@spec kind(t()) :: mediaKind()

The media kind

pause(producer)

@spec pause(t()) :: {:ok} | {:error}

Pauses the producer (no RTP is sent to its associated consumers). Triggers a "producerpause" event in all its associated consumers. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-pause

paused?(producer)

@spec paused?(t()) :: boolean() | {:error}

Whether the producer is paused. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-paused

resume(producer)

@spec resume(t()) :: {:ok} | {:error}

Resumes the producer (RTP is sent again to its associated consumers). Triggers a "producerresume" event in all its associated consumers. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-resume

rtp_parameters(map)

@spec rtp_parameters(t()) :: rtpParameters()

RtpParameters. https://mediasoup.org/documentation/v3/mediasoup/rtp-parameters-and-capabilities/#RtpParameters

score(producer)

@spec score(t()) :: list() | {:error}

The score of each RTP stream being received, representing their tranmission quality. https://mediasoup.org/documentation/v3/mediasoup/api/#producer-score

start_link(opt)

struct_from_pid(pid)

@spec struct_from_pid(pid()) :: t()

struct_from_pid_and_ref(pid, reference)

type(map)

@spec type(t()) :: producerType()

Producer type. https://mediasoup.org/documentation/v3/mediasoup/api/#ProducerType