Skip to main content

ShakaP2PEngine

Static method

registerPlugins

Register plugins related to P2P functionality in Shaka Player

registerPlugins: (shaka = window.shaka) => void;

Return Value

void

unregisterPlugins

Unregister plug-ins related to P2P functionality from Shaka Player

unregisterPlugins: (shaka = window.shaka) => void;

Return Value

void

Constructor

constructor: (config?: PartialShakaEngineConfig, shaka = window.shaka) => ShakaP2PEngine;

Parameters

ParameterTypeDefault valueDescription
configPartialHlsJsP2PEngineConfigundefinedconfiguration parameter

PartialHlsJsP2PEngineConfig

ParameterTypeDefault valueDescription
corePartial<CoreConfig>undefinedconfiguration parameter

CoreConfig

ParameterTypeDefault valueDescription
isP2PDisabledbooleanfalseP2P switch
rtcConfigRTCConfigurationundefinedp2p rtc configuration
useSSLbooleantrueuse HTTPS、WSS protocol
appIdstring''appID
tokenstring''app Token (optional)
trackerZonestringcnThe country code of the server address,eg:'cn'、'cc'.
gatewayUrlstring''User-defined gateway address.

Return Value

The ShakaP2PEngine instance

destroy

Release engine

destroy: () => void;

Return Value

void

addEventListener

Listen for p2pEngine events CoreEventMap

addEventListener: <K extends keyof CoreEventMap>(
eventName: K,
listener: CoreEventMap[K],
) => void;

Return Value

void

addEventListener

Cancel listening for p2pEngine events CoreEventMap

removeEventListener: <K extends keyof CoreEventMap>(
eventName: K,
listener: CoreEventMap[K],
) => void;

Return Value

void

getConfig

Get the configuration of p2pEngine

getConfig: () => HlsJsP2PEngineConfig;

Return Value

HlsJsP2PEngineConfig

applyDynamicConfig

Dynamically change the configuration of the p2pEngine

applyDynamicConfig: () => void;

Return Value

void

bindShakaPlayer

Bind 'shaka player' instance

bindShakaPlayer: (player: shaka.Player) => void;

Return Value

void

ShakaP2PEngine CallBack

onSegmentLoaded

Called when a fragment is fully downloaded and ready for use

onSegmentLoaded: (params: SegmentLoadDetails) => void;

Return Value

void

onSegmentError

Triggered when a fragment download error occurs

onSegmentError: (params: SegmentErrorDetails) => void;

Return Value

void

onSegmentAbort

Triggered when the fragment download stops

onSegmentAbort: (params: SegmentAbortDetails) => void;

Return Value

void

onSegmentStart

Triggered at the beginning of the fragment download process

onSegmentStart: (params: SegmentStartDetails) => void;

Return Value

void

onPeerConnect

Occurs when a new point-to-point connection is established

onPeerConnect: (params: PeerDetails) => void;

Return Value

void

onPeerClose

Triggered when an existing point-to-point connection is closed

onPeerClose: (params: PeerDetails) => void;

Return Value

void

onPeerError

Triggered when an error occurs during a point-to-point connection

onPeerError: (params: PeerErrorDetails) => void;

Return Value

void

onChunkDownloaded

Called after the data block in the segment has been successfully downloaded

onChunkDownloaded: (
bytesLength: number,
downloadSource: DownloadSource,
peerId?: string,
) => void;

Return Value

void

onChunkUploaded

Called when the data block is successfully uploaded to the peer node

onChunkUploaded: (bytesLength: number, peerId: string) => void;

Return Value

void

onTrackerError

Called when an error occurs during a tracker request

onTrackerError: (params: TrackerErrorDetails) => void;

Return Value

void

onTrackerWarning

Called when a warning occurs during a tracker request

onTrackerWarning: (params: TrackerWarningDetails) => void;

Return Value

void