red5pro-webrtc-sdk
Version:
Red5 Pro HTML SDK
765 lines (383 loc) • 11.1 kB
Markdown
[**Red5 Pro WebRTC SDK v15.5.0**](../README.md)
***
[Red5 Pro WebRTC SDK](../globals.md) / WHEPClient
# Class: WHEPClient
WHEP-based Subscriber.
The `WHEPClient` - under the hood - is based on the [WebRTC-HTTP egress](https://www.ietf.org/archive/id/draft-ietf-wish-whep-03.html)(WHEP) protocol providing the ability to negotation and establish a connection using HTTP/S requests. This removes the requirement for a WebSocket, which historically has been used for the role of negotiation and connection.
This provides a standardized - and _blazingly fast_ - way to establish and playback a live stream using WebRTC.
## Extends
- [`PlaybackController`](PlaybackController.md)
## Extended by
- [`LiveSeekClient`](LiveSeekClient.md)
## Constructors
### Constructor
> **new WHEPClient**(`url?`, `element?`, `additionalOptions?`): `WHEPClient`
Constructor for the WHEP-based Subscriber.
#### Parameters
##### url?
`string`
Optional WHEP endpoint URL for the live stream.
##### element?
`HTMLMediaElement`
Optional HTMLMediaElement to use for live stream playback.
##### additionalOptions?
[`RTCWhepSubscriberConfigType`](../type-aliases/RTCWhepSubscriberConfigType.md)
Optional RTCWhepSubscriberConfigType to use for configuration.
#### Returns
`WHEPClient`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`constructor`](PlaybackController.md#constructor)
## Accessors
### options
#### Get Signature
> **get** **options**(): `undefined` \| [`RTCWhepSubscriberConfigType`](../type-aliases/RTCWhepSubscriberConfigType.md)
Get the options for the WHEP-based Subscriber.
##### Returns
`undefined` \| [`RTCWhepSubscriberConfigType`](../type-aliases/RTCWhepSubscriberConfigType.md)
## Methods
### callServer()
> **callServer**(`methodName`, `args`): `Promise`\<`any`\>
Call a method on the Red5 Pro Server over the message transport (DataChannel).
#### Parameters
##### methodName
`string`
The method name to call.
##### args
`any`
The arguments to call the method with.
#### Returns
`Promise`\<`any`\>
***
### disableStandby()
> **disableStandby**(): `void`
Disable standby mode for the WHEP-based Subscriber. This will signal to the server to resume audio and video.
#### Returns
`void`
***
### emit()
> **emit**(`type`, `data`): `void`
Emit an event on the WHEP-based Subscriber.
#### Parameters
##### type
`string`
The type of event to emit.
##### data
`any`
The data to emit.
#### Returns
`void`
***
### enableStandby()
> **enableStandby**(): `void`
Enable standby mode for the WHEP-based Subscriber. This will signal to the server to hold back audio and video.
#### Returns
`void`
***
### getDataChannel()
> **getDataChannel**(): `undefined` \| `RTCDataChannel`
Get the data channel for the WHEP-based Subscriber.
#### Returns
`undefined` \| `RTCDataChannel`
***
### getMediaStream()
> **getMediaStream**(): `undefined` \| `MediaStream`
Get the media stream being played back by the subscriber.
#### Returns
`undefined` \| `MediaStream`
***
### getMessageTransport()
> **getMessageTransport**(): `undefined` \| `MessageTransport`
Get the message transport for the WHEP-based Subscriber.
#### Returns
`undefined` \| `MessageTransport`
***
### getOptions()
> **getOptions**(): `undefined` \| [`RTCWhepSubscriberConfigType`](../type-aliases/RTCWhepSubscriberConfigType.md)
Get the options for the WHEP-based Subscriber.
#### Returns
`undefined` \| [`RTCWhepSubscriberConfigType`](../type-aliases/RTCWhepSubscriberConfigType.md)
***
### getPeerConnection()
> **getPeerConnection**(): `undefined` \| `RTCPeerConnection`
Get the peer connection for the WHEP-based Subscriber.
#### Returns
`undefined` \| `RTCPeerConnection`
***
### getPlayer()
> **getPlayer**(): `undefined` \| `HTMLMediaElement`
Get the media element for the WHEP-based Subscriber.
#### Returns
`undefined` \| `HTMLMediaElement`
***
### getPubNubClient()
> **getPubNubClient**(): `undefined` \| [`PubNubClient`](PubNubClient.md)
Get the PubNub client for the WHEP-based Subscriber.
#### Returns
`undefined` \| [`PubNubClient`](PubNubClient.md)
***
### getType()
> **getType**(): `string`
Get the type of the WHEP-based Subscriber (RTC).
#### Returns
`string`
***
### getVolume()
> **getVolume**(): `number`
Get the volume of the media being delivered to the subscriber.
#### Returns
`number`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`getVolume`](PlaybackController.md#getvolume)
***
### init()
> **init**(`options`): `Promise`\<`WHEPClient`\>
Initialize the WHEP-based Subscriber.
#### Parameters
##### options
[`RTCWhepSubscriberConfigType`](../type-aliases/RTCWhepSubscriberConfigType.md)
RTCWhepSubscriberConfigType to use for configuration.
#### Returns
`Promise`\<`WHEPClient`\>
***
### monitorStats()
> **monitorStats**(`stats?`, `renegotiationPolicy?`): `WHEPClient`
Monitor the statistics of the media being delivered to the subscriber over the underlying RTCPeerConnection.
#### Parameters
##### stats?
[`StatsConfig`](../type-aliases/StatsConfig.md)
The statistics configuration.
##### renegotiationPolicy?
`RenegotiationPolicyType`
The renegotiation policy configuration.
#### Returns
`WHEPClient`
***
### mute()
> **mute**(): `void`
Mute the audio playback on the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`mute`](PlaybackController.md#mute)
***
### muteAudio()
> **muteAudio**(): `void`
Mute the audio being delivered to the subscriber.
#### Returns
`void`
***
### muteVideo()
> **muteVideo**(): `void`
Mute the video being delivered to the subscriber.
#### Returns
`void`
***
### off()
> **off**(`type`, `fn`): `void`
Remove an event listener from the WHEP-based Subscriber.
#### Parameters
##### type
`string`
The type of event to listen for.
##### fn
(`event`) => `void`
The function to call when the event is triggered.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`off`](PlaybackController.md#off)
***
### on()
> **on**(`type`, `fn`): `void`
Add an event listener to the WHEP-based Subscriber.
#### Parameters
##### type
`string`
The type of event to listen for.
##### fn
(`event`) => `void`
The function to call when the event is triggered.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`on`](PlaybackController.md#on)
***
### pause()
> **pause**(): `void`
Pause the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`pause`](PlaybackController.md#pause)
***
### play()
> **play**(): `void`
Play the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`play`](PlaybackController.md#play)
***
### resume()
> **resume**(): `void`
Resume the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`resume`](PlaybackController.md#resume)
***
### seekTo()
> **seekTo**(`time`): `void`
Seek to a specific time in the media being delivered to the subscriber.
#### Parameters
##### time
`number`
The time to seek to.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`seekTo`](PlaybackController.md#seekto)
***
### send()
> **send**(`methodName`, `data`): `Promise`\<`undefined` \| `boolean`\>
Send a message to the Red5 Pro Server over the message transport (DataChannel).
#### Parameters
##### methodName
`string`
The method name to send.
##### data
`any`
The data to send.
#### Returns
`Promise`\<`undefined` \| `boolean`\>
***
### sendLog()
> **sendLog**(`level`, `message`): `void`
Send a log message to the Red5 Pro Server over the message transport (DataChannel).
#### Parameters
##### level
`string`
The level of the log message.
##### message
`any`
The message to send.
#### Returns
`void`
***
### sendPubNub()
> **sendPubNub**(`channel`, `message`): `Promise`\<`boolean`\>
Send a message to the PubNub channel.
#### Parameters
##### channel
`string`
The channel to send the message to.
##### message
`any`
The message to send.
#### Returns
`Promise`\<`boolean`\>
***
### setVolume()
> **setVolume**(`value`): `void`
Set the volume of the media being delivered to the subscriber.
#### Parameters
##### value
`number`
The volume to set.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`setVolume`](PlaybackController.md#setvolume)
***
### stop()
> **stop**(): `void`
Stop the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`stop`](PlaybackController.md#stop)
***
### subscribe()
> **subscribe**(): `Promise`\<`WHEPClient`\>
Subscribe to the WHEP-based Subscriber.
#### Returns
`Promise`\<`WHEPClient`\>
***
### subscribePubNub()
> **subscribePubNub**(`channel`, `options`): `Promise`\<`boolean`\>
Subscribe to a PubNub channel.
#### Parameters
##### channel
`string`
The channel to subscribe to.
##### options
`any`
The options to use for subscription.
#### Returns
`Promise`\<`boolean`\>
***
### toggleFullScreen()
> **toggleFullScreen**(): `void`
Toggle the full screen mode of the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`toggleFullScreen`](PlaybackController.md#togglefullscreen)
***
### trigger()
> **trigger**(`event`): `void`
Trigger an event on the WHEP-based Subscriber.
#### Parameters
##### event
[`Event`](Event.md)
The event to trigger.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`trigger`](PlaybackController.md#trigger)
***
### unmonitorStats()
> **unmonitorStats**(): `WHEPClient`
Unmonitor the statistics of the media being delivered to the subscriber over the underlying RTCPeerConnection.
#### Returns
`WHEPClient`
***
### unmute()
> **unmute**(): `void`
Unmute the audio playback on the media being delivered to the subscriber.
#### Returns
`void`
#### Overrides
[`PlaybackController`](PlaybackController.md).[`unmute`](PlaybackController.md#unmute)
***
### unmuteAudio()
> **unmuteAudio**(): `void`
Unmute the audio being delivered to the subscriber.
#### Returns
`void`
***
### unmuteVideo()
> **unmuteVideo**(): `void`
Unmute the video being delivered to the subscriber.
#### Returns
`void`
***
### unsubscribe()
> **unsubscribe**(`internal`): `Promise`\<`void`\>
Unsubscribe from the WHEP-based Subscriber.
#### Parameters
##### internal
`boolean` = `false`
Optional boolean to indicate if the unsubscribe is internal.
#### Returns
`Promise`\<`void`\>
***
### unsubscribePubNub()
> **unsubscribePubNub**(`channel`): `Promise`\<`boolean`\>
Unsubscribe from a PubNub channel.
#### Parameters
##### channel
`string`
The channel to unsubscribe from.
#### Returns
`Promise`\<`boolean`\>