# Class Player

#### Hierarchy (view full)

- Player
  - Player

#####
Index

### Constructors

constructor

### Properties

Event
LoggerLevel
RequestType

### Methods

addEventListener
addTextTrack
addThumbnailTrack
attach
detach
disablePictureInPicture
dispose
enablePictureInPicture
enterPictureInPicture
exitPictureInPicture
getAudioTracks
getBufferedPercent
getBufferedRanges
getConfiguration
getCuePointsMetadataTrack
getCurrentPlaybackState
getCurrentSource
getCurrentTime
getDuration
getId3MetadataTrack
getIntegrationsManager
getIsEnded
getIsInPictureInPicture
getIsMuted
getIsPictureInPictureAvailable
getLoggerLevel
getNetworkingManager
getPlaybackRate
getPlayedRanges
getPlaylistByIdFromPlaybackApi
getPlaylistManager
getQualityLevels
getRelatedVideosByVideoIdFromPlaybackApi
getSeekableRanges
getSpatialNavigationManager
getTextTracks
getThumbnailTracks
getUiManager
getVersion
getVersionHash
getVideoByIdFromPlaybackApi
getVideoElement
getVideoPlaybackQuality
getVideosBySearchFromPlaybackApi
getVolumeLevel
loadBrightcoveVideoModel
loadRemoteVideo
mute
once
pause
play
probeEnvCapabilities
removeAllEventListeners
removeAllEventListenersForType
removeEventListener
removeTextTrack
removeThumbnailTrack
resetConfiguration
seek
selectAudioTrack
selectAutoQualityLevel
selectQualityLevel
selectThumbnailTrack
setLoggerLevel
setPlaybackRate
setVolumeLevel
stop
unmute
updateAccountId
updateConfiguration

## Constructors

### constructor

- new Player(deps): Player

- #### Parameters

  - deps: PlayerWithUiDependencies

  #### Returns Player

  Overrides Player.constructor

## Properties

### `Static` Event

Event: {
Ads: {
AdEnd: "adEnd";
AdSkip: "adskip";
AdStart: "adStart";
AdTimeout: "adTimeout";
Cancelled: "adscancelled";
ContentChanged: "contentchanged";
ContentResumed: "contentresumed";
ContentUpdate: "contentUpdate";
NoPostroll: "adsNoPostroll";
NoPreroll: "adsNoPreroll";
Ready: "adsready";
ReadyForPostroll: "adsReadyForPostroll";
ReadyForPreroll: "adsReadyForPreroll";
};
BandwidthUpdate: "bandwidthupdate";
BufferedRangesChanged: "bufferedrangeschanged";
CodecsChange: "codecschange";
ContentSteeringLoadComplete: "contentsteeringloadcomplete";
ContentSteeringLoadStart: "contentSteeringloadstart";
ContentSteeringParsed: "contentsteeringparsed";
EMEKeyMessage: "emeKeyMessage";
EMEKeySessionClosed: "emeKeySessionClosed";
EMEKeySessionCreated: "emeKeySessionCreated";
EMEKeySessionRemoved: "emeKeySessionRemoved";
EMEKeySessionUpdated: "emeKeySessionUpdated";
EMEKeyStatusesChanged: "emeKeyStatusesChanged";
EMEKeySystemAccessCompleted: "emeKeySystemAccessCompleted";
EMELicenseRequestAttempted: "emeLicenseRequestAttempted";
GapJumped: "gapjumped";
Integrations: {
ImaClientSide: {
ImaClientSideAdClick: "imaClientSideAdClick";
ImaClientSideAdComplete: "imaClientSideAdComplete";
ImaClientSideAdError: "imaClientSideAdError";
ImaClientSideAdStarted: "imaClientSideAdStarted";
ImaClientSideAdsLoad: "imaClientSideAdsLoad";
ImaClientSideAdsPodEnded: "imaClientSideAdsPodEnded";
ImaClientSideAdsPodStarted: "imaClientSideAdsPodStarted";
ImaClientSideAdsRequest: "imaClientSideAdsRequest";
ImaClientSideAllAdsCompleted: "imaClientSideAllAdsCompleted";
ImaClientSideFirstQuartile: "imaClientSideFirstQuartile";
ImaClientSideMidPoint: "imaClientSideMidPoint";
ImaClientSidePaused: "imaClientSidePaused";
ImaClientSideResumed: "imaClientSideResumed";
ImaClientSideSdkLoaded: "imaClientSideSdkLoaded";
ImaClientSideSkipped: "imaClientSideSkipped";
ImaClientSideThirdQuartile: "imaClientSideThirdQuartile";
ImaClientSideVolumeChanged: "imaClientSideVolumeChanged";
};
ImaDai: {
ImaDaiSdkLoaded: "imaDaiSdkLoaded";
};
Pinning: {
BeforePin: "beforepin";
BeforePinClose: "beforepinclose";
BeforePinningDisabled: "beforepindisabled";
BeforePinningEnabled: "beforepinenabled";
BeforeUnpin: "beforeunpin";
Pin: "pin";
PinClose: "pinclose";
PinningDisabled: "pindisabled";
PinningEnabled: "pinenabled";
Unpin: "unpin";
};
Ssai: {
ClickThrough: "ssaiClickThrough";
};
};
ManifestParseComplete: "manifestparsecomplete";
ManifestParseStart: "manifestparsestart";
ManifestRequestComplete: "manifestrequestcomplete";
ManifestRequestStart: "manifestrequeststart";
PlayedRangesChanged: "playedrangeschanged";
PlayerAbort: "playerAbort";
PlayerAudioTracksChanged: "playerAudioTracksChanged";
PlayerCanPlay: "playerCanPlay";
PlayerCanPlayThrough: "playerCanplayThrough";
PlayerDisablePictureInPicture: "playerDisablePictureInPictureChanged";
PlayerDisposed: "playerDisposed";
PlayerDurationChanged: "playerDurationChanged";
PlayerEmptied: "playerEmptied";
PlayerEnablePictureInPicture: "playerEnablePictureInPicture";
PlayerEnded: "playerEnded";
PlayerEnterPictureInPicture: "playerEnterPictureInPicture";
PlayerError: "playerError";
PlayerExitPictureInPicture: "playerExitPictureInPicture";
PlayerLoadStart: "playerLoadStart";
PlayerLoadedData: "playerLoadedData";
PlayerLoadedMetadata: "playerLoadedMetadata";
PlayerMutedStatusChanged: "playerMutedStatusChanged";
PlayerPause: "playerPause";
PlayerPlay: "playerPlay";
PlayerPlaying: "playerPlaying";
PlayerProgress: "playerProgress";
PlayerQualityLevelsChanged: "playerQualityLevelsChanged";
PlayerRateChanged: "playerRateChanged";
PlayerResize: "playerResize";
PlayerSeeked: "playerSeeked";
PlayerSeeking: "playerSeeking";
PlayerStalled: "playerStalled";
PlayerStateChanged: "playerStateChanged";
PlayerSuspend: "playerSuspend";
PlayerTextTracksChanged: "playerTextTracksChanged";
PlayerThumbnailTracksChanged: "playerThumbnailTracksChanged";
PlayerTimeChanged: "playerTimeChanged";
PlayerVideoElementChanged: "playerVideoElementChanged";
PlayerVolumeChanged: "playerVolumeChanged";
PlayerWaiting: "playerWaiting";
PlaylistParseComplete: "playlistparsecomplete";
PlaylistParseStart: "playlistparsestart";
PlaylistRequestComplete: "playlistrequestcomplete";
PlaylistRequestStart: "playlistrequeststart";
RenditionDisabled: "renditiondisabled";
RenditionEnabled: "renditionenabled";
RenditionSelected: "renditionselected";
SeekableRangesChanged: "seekablerangeschanged";
SegmentAppendComplete: "segmentappendcomplete";
SegmentAppendStart: "segmentappendstart";
SegmentDecryptionComplete: "segmentdecryptioncomplete";
SegmentDecryptionStart: "segmentdecryptionstart";
SegmentKeyLoadComplete: "segmentkeyloadcomplete";
SegmentKeyLoadStart: "segmentkeyloadstart";
SegmentLoadStart: "segmentloadstart";
SegmentLoaded: "segmentloaded";
SegmentSelected: "segmentselected";
SegmentTransmuxingComplete: "segmenttransmuxingcomplete";
SegmentTransmuxingStart: "segmenttransmuxingstart";
SegmentTransmuxingTimingInfoAvailable: "segmenttransmuxingtiminginfoavailable";
SegmentTransmuxingTrackInfoAvailable: "segmenttransmuxingtrackinfoavailable";
SpatialNavigation: {
EndOfFocusableComponents: "endOfFocusableComponents";
FocusableComponentsChanged: "focusableComponentsChanged";
};
TimelineChange: "timelinechange";
} = Events

#### Type declaration

- ##### `Readonly` Ads: {
  AdEnd: "adEnd";
  AdSkip: "adskip";
  AdStart: "adStart";
  AdTimeout: "adTimeout";
  Cancelled: "adscancelled";
  ContentChanged: "contentchanged";
  ContentResumed: "contentresumed";
  ContentUpdate: "contentUpdate";
  NoPostroll: "adsNoPostroll";
  NoPreroll: "adsNoPreroll";
  Ready: "adsready";
  ReadyForPostroll: "adsReadyForPostroll";
  ReadyForPreroll: "adsReadyForPreroll";
  }

  - ##### `Readonly` AdEnd: "adEnd"

  - ##### `Readonly` AdSkip: "adskip"

  - ##### `Readonly` AdStart: "adStart"

  - ##### `Readonly` AdTimeout: "adTimeout"

  - ##### `Readonly` Cancelled: "adscancelled"

  - ##### `Readonly` ContentChanged: "contentchanged"

  - ##### `Readonly` ContentResumed: "contentresumed"

  - ##### `Readonly` ContentUpdate: "contentUpdate"

  - ##### `Readonly` NoPostroll: "adsNoPostroll"

  - ##### `Readonly` NoPreroll: "adsNoPreroll"

  - ##### `Readonly` Ready: "adsready"

  - ##### `Readonly` ReadyForPostroll: "adsReadyForPostroll"

  - ##### `Readonly` ReadyForPreroll: "adsReadyForPreroll"

- ##### `Readonly` BandwidthUpdate: "bandwidthupdate"

- ##### `Readonly` BufferedRangesChanged: "bufferedrangeschanged"

- ##### `Readonly` CodecsChange: "codecschange"

- ##### `Readonly` ContentSteeringLoadComplete: "contentsteeringloadcomplete"

- ##### `Readonly` ContentSteeringLoadStart: "contentSteeringloadstart"

- ##### `Readonly` ContentSteeringParsed: "contentsteeringparsed"

- ##### `Readonly` EMEKeyMessage: "emeKeyMessage"

- ##### `Readonly` EMEKeySessionClosed: "emeKeySessionClosed"

- ##### `Readonly` EMEKeySessionCreated: "emeKeySessionCreated"

- ##### `Readonly` EMEKeySessionRemoved: "emeKeySessionRemoved"

- ##### `Readonly` EMEKeySessionUpdated: "emeKeySessionUpdated"

- ##### `Readonly` EMEKeyStatusesChanged: "emeKeyStatusesChanged"

- ##### `Readonly` EMEKeySystemAccessCompleted: "emeKeySystemAccessCompleted"

- ##### `Readonly` EMELicenseRequestAttempted: "emeLicenseRequestAttempted"

- ##### `Readonly` GapJumped: "gapjumped"

- ##### `Readonly` Integrations: {
  ImaClientSide: {
  ImaClientSideAdClick: "imaClientSideAdClick";
  ImaClientSideAdComplete: "imaClientSideAdComplete";
  ImaClientSideAdError: "imaClientSideAdError";
  ImaClientSideAdStarted: "imaClientSideAdStarted";
  ImaClientSideAdsLoad: "imaClientSideAdsLoad";
  ImaClientSideAdsPodEnded: "imaClientSideAdsPodEnded";
  ImaClientSideAdsPodStarted: "imaClientSideAdsPodStarted";
  ImaClientSideAdsRequest: "imaClientSideAdsRequest";
  ImaClientSideAllAdsCompleted: "imaClientSideAllAdsCompleted";
  ImaClientSideFirstQuartile: "imaClientSideFirstQuartile";
  ImaClientSideMidPoint: "imaClientSideMidPoint";
  ImaClientSidePaused: "imaClientSidePaused";
  ImaClientSideResumed: "imaClientSideResumed";
  ImaClientSideSdkLoaded: "imaClientSideSdkLoaded";
  ImaClientSideSkipped: "imaClientSideSkipped";
  ImaClientSideThirdQuartile: "imaClientSideThirdQuartile";
  ImaClientSideVolumeChanged: "imaClientSideVolumeChanged";
  };
  ImaDai: {
  ImaDaiSdkLoaded: "imaDaiSdkLoaded";
  };
  Pinning: {
  BeforePin: "beforepin";
  BeforePinClose: "beforepinclose";
  BeforePinningDisabled: "beforepindisabled";
  BeforePinningEnabled: "beforepinenabled";
  BeforeUnpin: "beforeunpin";
  Pin: "pin";
  PinClose: "pinclose";
  PinningDisabled: "pindisabled";
  PinningEnabled: "pinenabled";
  Unpin: "unpin";
  };
  Ssai: {
  ClickThrough: "ssaiClickThrough";
  };
  }

  - ##### `Readonly` ImaClientSide: {
    ImaClientSideAdClick: "imaClientSideAdClick";
    ImaClientSideAdComplete: "imaClientSideAdComplete";
    ImaClientSideAdError: "imaClientSideAdError";
    ImaClientSideAdStarted: "imaClientSideAdStarted";
    ImaClientSideAdsLoad: "imaClientSideAdsLoad";
    ImaClientSideAdsPodEnded: "imaClientSideAdsPodEnded";
    ImaClientSideAdsPodStarted: "imaClientSideAdsPodStarted";
    ImaClientSideAdsRequest: "imaClientSideAdsRequest";
    ImaClientSideAllAdsCompleted: "imaClientSideAllAdsCompleted";
    ImaClientSideFirstQuartile: "imaClientSideFirstQuartile";
    ImaClientSideMidPoint: "imaClientSideMidPoint";
    ImaClientSidePaused: "imaClientSidePaused";
    ImaClientSideResumed: "imaClientSideResumed";
    ImaClientSideSdkLoaded: "imaClientSideSdkLoaded";
    ImaClientSideSkipped: "imaClientSideSkipped";
    ImaClientSideThirdQuartile: "imaClientSideThirdQuartile";
    ImaClientSideVolumeChanged: "imaClientSideVolumeChanged";
    }

    - ##### `Readonly` ImaClientSideAdClick: "imaClientSideAdClick"

    - ##### `Readonly` ImaClientSideAdComplete: "imaClientSideAdComplete"

    - ##### `Readonly` ImaClientSideAdError: "imaClientSideAdError"

    - ##### `Readonly` ImaClientSideAdStarted: "imaClientSideAdStarted"

    - ##### `Readonly` ImaClientSideAdsLoad: "imaClientSideAdsLoad"

    - ##### `Readonly` ImaClientSideAdsPodEnded: "imaClientSideAdsPodEnded"

    - ##### `Readonly` ImaClientSideAdsPodStarted: "imaClientSideAdsPodStarted"

    - ##### `Readonly` ImaClientSideAdsRequest: "imaClientSideAdsRequest"

    - ##### `Readonly` ImaClientSideAllAdsCompleted: "imaClientSideAllAdsCompleted"

    - ##### `Readonly` ImaClientSideFirstQuartile: "imaClientSideFirstQuartile"

    - ##### `Readonly` ImaClientSideMidPoint: "imaClientSideMidPoint"

    - ##### `Readonly` ImaClientSidePaused: "imaClientSidePaused"

    - ##### `Readonly` ImaClientSideResumed: "imaClientSideResumed"

    - ##### `Readonly` ImaClientSideSdkLoaded: "imaClientSideSdkLoaded"

    - ##### `Readonly` ImaClientSideSkipped: "imaClientSideSkipped"

    - ##### `Readonly` ImaClientSideThirdQuartile: "imaClientSideThirdQuartile"

    - ##### `Readonly` ImaClientSideVolumeChanged: "imaClientSideVolumeChanged"

  - ##### `Readonly` ImaDai: {
    ImaDaiSdkLoaded: "imaDaiSdkLoaded";
    }

    - ##### `Readonly` ImaDaiSdkLoaded: "imaDaiSdkLoaded"

  - ##### `Readonly` Pinning: {
    BeforePin: "beforepin";
    BeforePinClose: "beforepinclose";
    BeforePinningDisabled: "beforepindisabled";
    BeforePinningEnabled: "beforepinenabled";
    BeforeUnpin: "beforeunpin";
    Pin: "pin";
    PinClose: "pinclose";
    PinningDisabled: "pindisabled";
    PinningEnabled: "pinenabled";
    Unpin: "unpin";
    }

    - ##### `Readonly` BeforePin: "beforepin"

    - ##### `Readonly` BeforePinClose: "beforepinclose"

    - ##### `Readonly` BeforePinningDisabled: "beforepindisabled"

    - ##### `Readonly` BeforePinningEnabled: "beforepinenabled"

    - ##### `Readonly` BeforeUnpin: "beforeunpin"

    - ##### `Readonly` Pin: "pin"

    - ##### `Readonly` PinClose: "pinclose"

    - ##### `Readonly` PinningDisabled: "pindisabled"

    - ##### `Readonly` PinningEnabled: "pinenabled"

    - ##### `Readonly` Unpin: "unpin"

  - ##### `Readonly` Ssai: {
    ClickThrough: "ssaiClickThrough";
    }

    - ##### `Readonly` ClickThrough: "ssaiClickThrough"

- ##### `Readonly` ManifestParseComplete: "manifestparsecomplete"

- ##### `Readonly` ManifestParseStart: "manifestparsestart"

- ##### `Readonly` ManifestRequestComplete: "manifestrequestcomplete"

- ##### `Readonly` ManifestRequestStart: "manifestrequeststart"

- ##### `Readonly` PlayedRangesChanged: "playedrangeschanged"

- ##### `Readonly` PlayerAbort: "playerAbort"

- ##### `Readonly` PlayerAudioTracksChanged: "playerAudioTracksChanged"

- ##### `Readonly` PlayerCanPlay: "playerCanPlay"

- ##### `Readonly` PlayerCanPlayThrough: "playerCanplayThrough"

- ##### `Readonly` PlayerDisablePictureInPicture: "playerDisablePictureInPictureChanged"

- ##### `Readonly` PlayerDisposed: "playerDisposed"

- ##### `Readonly` PlayerDurationChanged: "playerDurationChanged"

- ##### `Readonly` PlayerEmptied: "playerEmptied"

- ##### `Readonly` PlayerEnablePictureInPicture: "playerEnablePictureInPicture"

- ##### `Readonly` PlayerEnded: "playerEnded"

- ##### `Readonly` PlayerEnterPictureInPicture: "playerEnterPictureInPicture"

- ##### `Readonly` PlayerError: "playerError"

- ##### `Readonly` PlayerExitPictureInPicture: "playerExitPictureInPicture"

- ##### `Readonly` PlayerLoadStart: "playerLoadStart"

- ##### `Readonly` PlayerLoadedData: "playerLoadedData"

- ##### `Readonly` PlayerLoadedMetadata: "playerLoadedMetadata"

- ##### `Readonly` PlayerMutedStatusChanged: "playerMutedStatusChanged"

- ##### `Readonly` PlayerPause: "playerPause"

- ##### `Readonly` PlayerPlay: "playerPlay"

- ##### `Readonly` PlayerPlaying: "playerPlaying"

- ##### `Readonly` PlayerProgress: "playerProgress"

- ##### `Readonly` PlayerQualityLevelsChanged: "playerQualityLevelsChanged"

- ##### `Readonly` PlayerRateChanged: "playerRateChanged"

- ##### `Readonly` PlayerResize: "playerResize"

- ##### `Readonly` PlayerSeeked: "playerSeeked"

- ##### `Readonly` PlayerSeeking: "playerSeeking"

- ##### `Readonly` PlayerStalled: "playerStalled"

- ##### `Readonly` PlayerStateChanged: "playerStateChanged"

- ##### `Readonly` PlayerSuspend: "playerSuspend"

- ##### `Readonly` PlayerTextTracksChanged: "playerTextTracksChanged"

- ##### `Readonly` PlayerThumbnailTracksChanged: "playerThumbnailTracksChanged"

- ##### `Readonly` PlayerTimeChanged: "playerTimeChanged"

- ##### `Readonly` PlayerVideoElementChanged: "playerVideoElementChanged"

- ##### `Readonly` PlayerVolumeChanged: "playerVolumeChanged"

- ##### `Readonly` PlayerWaiting: "playerWaiting"

- ##### `Readonly` PlaylistParseComplete: "playlistparsecomplete"

- ##### `Readonly` PlaylistParseStart: "playlistparsestart"

- ##### `Readonly` PlaylistRequestComplete: "playlistrequestcomplete"

- ##### `Readonly` PlaylistRequestStart: "playlistrequeststart"

- ##### `Readonly` RenditionDisabled: "renditiondisabled"

- ##### `Readonly` RenditionEnabled: "renditionenabled"

- ##### `Readonly` RenditionSelected: "renditionselected"

- ##### `Readonly` SeekableRangesChanged: "seekablerangeschanged"

- ##### `Readonly` SegmentAppendComplete: "segmentappendcomplete"

- ##### `Readonly` SegmentAppendStart: "segmentappendstart"

- ##### `Readonly` SegmentDecryptionComplete: "segmentdecryptioncomplete"

- ##### `Readonly` SegmentDecryptionStart: "segmentdecryptionstart"

- ##### `Readonly` SegmentKeyLoadComplete: "segmentkeyloadcomplete"

- ##### `Readonly` SegmentKeyLoadStart: "segmentkeyloadstart"

- ##### `Readonly` SegmentLoadStart: "segmentloadstart"

- ##### `Readonly` SegmentLoaded: "segmentloaded"

- ##### `Readonly` SegmentSelected: "segmentselected"

- ##### `Readonly` SegmentTransmuxingComplete: "segmenttransmuxingcomplete"

- ##### `Readonly` SegmentTransmuxingStart: "segmenttransmuxingstart"

- ##### `Readonly` SegmentTransmuxingTimingInfoAvailable: "segmenttransmuxingtiminginfoavailable"

- ##### `Readonly` SegmentTransmuxingTrackInfoAvailable: "segmenttransmuxingtrackinfoavailable"

- ##### `Readonly` SpatialNavigation: {
  EndOfFocusableComponents: "endOfFocusableComponents";
  FocusableComponentsChanged: "focusableComponentsChanged";
  }

  - ##### `Readonly` EndOfFocusableComponents: "endOfFocusableComponents"

  - ##### `Readonly` FocusableComponentsChanged: "focusableComponentsChanged"

- ##### `Readonly` TimelineChange: "timelinechange"

Inherited from Player.Event

### `Static` LoggerLevel

LoggerLevel: typeof LoggerLevel = LoggerLevel

Inherited from Player.LoggerLevel

### `Static` RequestType

RequestType: typeof RequestType = RequestType

Inherited from Player.RequestType

## Methods

### addEventListener

- addEventListener<K>(event, callback): void

- Add a player event listener

  #### Type Parameters

  - K extends keyof EventToTypeMap

  #### Parameters

  - event: K
  - callback: EventHandler<EventToTypeMap[K]>

  #### Returns void

  Inherited from Player.addEventListener

### addTextTrack

- addTextTrack(textTrackOptions): null | TextTrack

- Add a text track

  #### Parameters

  - textTrackOptions: TextTrackOptions

  #### Returns null | TextTrack

  Inherited from Player.addTextTrack

### addThumbnailTrack

- addThumbnailTrack(options): void

- Add a new thumbnail preview track

  #### Parameters

  - options: ThumbnailTrackOptions

  #### Returns void

  Inherited from Player.addThumbnailTrack

### attach

- attach(root): void

- Attach the player to a root `<div>` element on the page

  #### Parameters

  - root: HTMLDivElement

  #### Returns void

  Inherited from Player.attach

### detach

- detach(): void

- Disable all player behavior and remove it from the page

  #### Returns void

  Inherited from Player.detach

### disablePictureInPicture

- disablePictureInPicture(): void

- Disable picture-in-picture mode

  #### Returns void

  Inherited from Player.disablePictureInPicture

### dispose

- dispose(): void

- Dispose the player and all UI

  #### Returns void

  Overrides Player.dispose

### enablePictureInPicture

- enablePictureInPicture(): void

- Enable picture-in-picture mode

  #### Returns void

  Inherited from Player.enablePictureInPicture

### enterPictureInPicture

- enterPictureInPicture(): void

- Enter picture-in-picture mode

  #### Returns void

  Inherited from Player.enterPictureInPicture

### exitPictureInPicture

- exitPictureInPicture(): void

- Exit picture-in-picture mode

  #### Returns void

  Inherited from Player.exitPictureInPicture

### getAudioTracks

- getAudioTracks(): AudioTrack[]

- Get an array of currently available audio tracks

  #### Returns AudioTrack[]

  Inherited from Player.getAudioTracks

### getBufferedPercent

- getBufferedPercent(): number

- Get the percentage of the current video that is currently buffered.

  #### Returns number

  Inherited from Player.getBufferedPercent

### getBufferedRanges

- getBufferedRanges(): PlayerTimeRange[]

- Get an array of time ranges representing the parts of the media that are already downloaded and available for playback.

  #### Returns PlayerTimeRange[]

  Inherited from Player.getBufferedRanges

### getConfiguration

- getConfiguration(): PlayerConfiguration

- Get the player configuration object

  #### Returns PlayerConfiguration

  Inherited from Player.getConfiguration

### getCuePointsMetadataTrack

- getCuePointsMetadataTrack(): null | TextTrack

- Get text track containing cuepoint metadata

  #### Returns null | TextTrack

  Inherited from Player.getCuePointsMetadataTrack

### getCurrentPlaybackState

- getCurrentPlaybackState(): PlayerState

- Get the current playback state of the player

  #### Returns PlayerState

  Inherited from Player.getCurrentPlaybackState

### getCurrentSource

- getCurrentSource(): null | Source

- Get the current source.

  #### Returns null | Source

  Inherited from Player.getCurrentSource

### getCurrentTime

- getCurrentTime(): number

- Get the current time of a video in seconds

  #### Returns number

  Inherited from Player.getCurrentTime

### getDuration

- getDuration(): number

- Get the duration of the currently loaded video in seconds

  #### Returns number

  Inherited from Player.getDuration

### getId3MetadataTrack

- getId3MetadataTrack(): null | TextTrack

- Get text track containing in-band ID3 metadata

  #### Returns null | TextTrack

  Inherited from Player.getId3MetadataTrack

### getIntegrationsManager

- getIntegrationsManager(): IntegrationsManager

- Get the Integrations Manager instance

  #### Returns IntegrationsManager

  Inherited from Player.getIntegrationsManager

### getIsEnded

- getIsEnded(): boolean

- Get whether the current video has ended

  #### Returns boolean

  Inherited from Player.getIsEnded

### getIsInPictureInPicture

- getIsInPictureInPicture(): boolean

- Get whether the player is currently in picture-in-picture mode

  #### Returns boolean

  Inherited from Player.getIsInPictureInPicture

### getIsMuted

- getIsMuted(): boolean

- Get whether the current video is muted

  #### Returns boolean

  Inherited from Player.getIsMuted

### getIsPictureInPictureAvailable

- getIsPictureInPictureAvailable(): boolean

- Get whether picture-in-picture mode is available

  #### Returns boolean

  Inherited from Player.getIsPictureInPictureAvailable

### getLoggerLevel

- getLoggerLevel(): LoggerLevel

- Get the current logger level

  #### Returns LoggerLevel

  Inherited from Player.getLoggerLevel

### getNetworkingManager

- getNetworkingManager(): Omit<NetworkingManager, "dispose">

- Get the NetworkingManager instance

  #### Returns Omit<NetworkingManager, "dispose">

  Inherited from Player.getNetworkingManager

### getPlaybackRate

- getPlaybackRate(): number

- Get the current playback rate of the video

  #### Returns number

  Inherited from Player.getPlaybackRate

### getPlayedRanges

- getPlayedRanges(): PlayerTimeRange[]

- Get an array of time ranges representing points in the media timeline that have been played.

  #### Returns PlayerTimeRange[]

  Inherited from Player.getPlayedRanges

### getPlaylistByIdFromPlaybackApi

- getPlaylistByIdFromPlaybackApi(payload): BrightcoveServiceResponseData<BrightcovePlaylist>

- Fetch a specific video playlist model from the Playback API by ID

  #### Parameters

  - payload: PlaybackApiPlaylistPayload

  #### Returns BrightcoveServiceResponseData<BrightcovePlaylist>

  Inherited from Player.getPlaylistByIdFromPlaybackApi

### getPlaylistManager

- getPlaylistManager(): Omit<PlaylistManager, "dispose" | "updateConfiguration" | "setAutoAdvanceHandler">

- Get the Playlist Manager instance

  #### Returns Omit<PlaylistManager, "dispose" | "updateConfiguration" | "setAutoAdvanceHandler">

  Inherited from Player.getPlaylistManager

### getQualityLevels

- getQualityLevels(): QualityLevel[]

- Get an array of currently available quality levels

  #### Returns QualityLevel[]

  Inherited from Player.getQualityLevels

### getRelatedVideosByVideoIdFromPlaybackApi

- getRelatedVideosByVideoIdFromPlaybackApi(payload): BrightcoveServiceResponseData<BrightcoveVideo[]>

- Fetch a list of related video models from the Playback API by ID

  #### Parameters

  - payload: PlaybackApiRelatedVideosPayload

  #### Returns BrightcoveServiceResponseData<BrightcoveVideo[]>

  Inherited from Player.getRelatedVideosByVideoIdFromPlaybackApi

### getSeekableRanges

- getSeekableRanges(): PlayerTimeRange[]

- Get an array of time ranges representing parts of the media that are currently seekable

  #### Returns PlayerTimeRange[]

  Inherited from Player.getSeekableRanges

### getSpatialNavigationManager

- getSpatialNavigationManager(): Omit<SpatialNavigationManager, "dispose" | "updateConfiguration">

- Get the active SpationalNavigationManager instance

  #### Returns Omit<SpatialNavigationManager, "dispose" | "updateConfiguration">

### getTextTracks

- getTextTracks(): TextTrack[]

- Get an array of all available text tracks

  #### Returns TextTrack[]

  Inherited from Player.getTextTracks

### getThumbnailTracks

- getThumbnailTracks(): ThumbnailTrack[]

- Get an array of available thumbnail preview tracks

  #### Returns ThumbnailTrack[]

  Inherited from Player.getThumbnailTracks

### getUiManager

- getUiManager(): Omit<UiManager, "dispose" | "updateConfiguration">

- Get the active UiManager instance

  #### Returns Omit<UiManager, "dispose" | "updateConfiguration">

### getVersion

- getVersion(): string

- Get the SDK version

  #### Returns string

  Inherited from Player.getVersion

### getVersionHash

- getVersionHash(): string

- Get the SDK version hash

  #### Returns string

  Inherited from Player.getVersionHash

### getVideoByIdFromPlaybackApi

- getVideoByIdFromPlaybackApi(payload): BrightcoveServiceResponseData<BrightcoveVideo>

- Fetch a specific video model from the Playback API by ID

  #### Parameters

  - payload: PlaybackApiVideoPayload

  #### Returns BrightcoveServiceResponseData<BrightcoveVideo>

  Inherited from Player.getVideoByIdFromPlaybackApi

### getVideoElement

- getVideoElement(): null | HTMLVideoElement

- #### Returns null | HTMLVideoElement

  Inherited from Player.getVideoElement

### getVideoPlaybackQuality

- getVideoPlaybackQuality(): null | PlaybackQuality

- Get available media playback quality metrics as specified by the W3C's Media Playback Quality API.

  #### Returns null | PlaybackQuality

  Inherited from Player.getVideoPlaybackQuality

### getVideosBySearchFromPlaybackApi

- getVideosBySearchFromPlaybackApi(payload): BrightcoveServiceResponseData<BrightcoveVideo[]>

- Fetch a list of video models from the Playback API by search params See Playback API Search Syntax

  #### Parameters

  - payload: PlaybackApiSearchVideosPayload

  #### Returns BrightcoveServiceResponseData<BrightcoveVideo[]>

  Inherited from Player.getVideosBySearchFromPlaybackApi

### getVolumeLevel

- getVolumeLevel(): number

- Get the current volume level between 0 and 1

  #### Returns number

  Inherited from Player.getVolumeLevel

### loadBrightcoveVideoModel

- loadBrightcoveVideoModel(model): void

- Load a video source from a Brightcove video model returned by the Playback API

  #### Parameters

  - model: BrightcoveVideo

  #### Returns void

  Inherited from Player.loadBrightcoveVideoModel

### loadRemoteVideo

- loadRemoteVideo(source): void

- Load a remote video source

  #### Parameters

  - source: Source

  #### Returns void

  Inherited from Player.loadRemoteVideo

### mute

- mute(): void

- Mute the current video

  #### Returns void

  Inherited from Player.mute

### once

- once<K>(event, callback): void

- Add a player event listener that will execute a handler on only one occurence of the event

  #### Type Parameters

  - K extends keyof EventToTypeMap

  #### Parameters

  - event: K
  - callback: EventHandler<EventToTypeMap[K]>

  #### Returns void

  Inherited from Player.once

### pause

- pause(): void

- Pause a video

  #### Returns void

  Inherited from Player.pause

### play

- play(): void

- Initiate playback of a video

  #### Returns void

  Inherited from Player.play

### probeEnvCapabilities

- probeEnvCapabilities(): Promise<CapabilitiesProbeResult>

- Get information about the technical capabilities of the current environment

  #### Returns Promise<CapabilitiesProbeResult>

  Inherited from Player.probeEnvCapabilities

### removeAllEventListeners

- removeAllEventListeners(): void

- Remove all event listeners for all events

  #### Returns void

  Inherited from Player.removeAllEventListeners

### removeAllEventListenersForType

- removeAllEventListenersForType<K>(event): void

- Remove all event listeners for a specific event

  #### Type Parameters

  - K extends keyof EventToTypeMap

  #### Parameters

  - event: K

  #### Returns void

  Inherited from Player.removeAllEventListenersForType

### removeEventListener

- removeEventListener<K>(event, callback): void

- Remove a specific event listener

  #### Type Parameters

  - K extends keyof EventToTypeMap

  #### Parameters

  - event: K
  - callback: EventHandler<EventToTypeMap[K]>

  #### Returns void

  Inherited from Player.removeEventListener

### removeTextTrack

- removeTextTrack(textTrack): void

- Remove a text track

  #### Parameters

  - textTrack: TextTrack

  #### Returns void

  Inherited from Player.removeTextTrack

### removeThumbnailTrack

- removeThumbnailTrack(track): void

- Remove a specific thumbnail preview track

  #### Parameters

  - track: ThumbnailTrack

  #### Returns void

  Inherited from Player.removeThumbnailTrack

### resetConfiguration

- resetConfiguration(): void

- Reset the player configuration to its default state

  #### Returns void

  Inherited from Player.resetConfiguration

### seek

- seek(seekTarget): void

- Seek to a specific time in a video

  #### Parameters

  - seekTarget: number

  #### Returns void

  Inherited from Player.seek

### selectAudioTrack

- selectAudioTrack(audioTrack): void

- Enable a specific audio track

  #### Parameters

  - audioTrack: AudioTrack

  #### Returns void

  Inherited from Player.selectAudioTrack

### selectAutoQualityLevel

- selectAutoQualityLevel(): void

- Enable adaptive bitrate switching to all quality levels

  #### Returns void

  Inherited from Player.selectAutoQualityLevel

### selectQualityLevel

- selectQualityLevel(level): void

- Enable a specific quality level and disable adaptive bitrate switching to all other quality levels

  #### Parameters

  - level: QualityLevel

  #### Returns void

  Inherited from Player.selectQualityLevel

### selectThumbnailTrack

- selectThumbnailTrack(selectedTrack): void

- Enable a specific thumbnail preview track

  #### Parameters

  - selectedTrack: ThumbnailTrack

  #### Returns void

  Inherited from Player.selectThumbnailTrack

### setLoggerLevel

- setLoggerLevel(level): void

- Set the current logger level

  #### Parameters

  - level: LoggerLevel

  #### Returns void

  Inherited from Player.setLoggerLevel

### setPlaybackRate

- setPlaybackRate(rate): void

- Set the current playback rate of the video

  #### Parameters

  - rate: number

  #### Returns void

  Inherited from Player.setPlaybackRate

### setVolumeLevel

- setVolumeLevel(level): void

- Set the current volume level to a number between 0 and 1

  #### Parameters

  - level: number

  #### Returns void

  Inherited from Player.setVolumeLevel

### stop

- stop(reason?): void

- Unload the current source without disposing the player

  #### Parameters

  - `Optional` reason: string | BasePlayerError

  #### Returns void

  Inherited from Player.stop

### unmute

- unmute(): void

- Unmute the current video

  #### Returns void

  Inherited from Player.unmute

### updateAccountId

- updateAccountId(accountId): void

- Update the Brightcove Account ID associated with the current player

  #### Parameters

  - accountId: string

  #### Returns void

  Inherited from Player.updateAccountId

### updateConfiguration

- updateConfiguration(chunk): PlayerConfiguration

- Update the player's configuration

  #### Parameters

  - chunk: {
    abr?: {
    customPixelRatio?: null | number;
    initialBandwidth?: null | number;
    limitRenditionByPlayerDimensions?: boolean;
    useDevicePixelRatio?: boolean;
    };
    brightcove?: {
    adConfigId?: null | string;
    applicationId?: null | string;
    authToken?: null | string;
    deliveryConfigId?: null | string;
    livePlaybackToken?: null | string;
    playbackApiBaseUrl?: null | string;
    playerName?: null | string;
    policyKey?: null | string;
    streamConcurrency?: boolean;
    tveToken?: null | string;
    viewerId?: null | string;
    watermarkingToken?: null | string;
    };
    integrations?: {
    endScreen?: {
    custom?: {
    content?: string;
    };
    social?: {
    deeplinking?: boolean;
    description?: string;
    embedCode?: string;
    embedDimensions?: boolean;
    embedDomain?: string;
    label?: string;
    offset?: string;
    removeDirect?: boolean;
    removeEmbed?: boolean;
    services?: {
    facebook?: boolean;
    linkedin?: boolean;
    pinterest?: boolean;
    tumblr?: boolean;
    twitter?: boolean;
    };
    title?: string;
    url?: string;
    };
    };
    imaClientSide?: {
    clickTrackingElement?: {};
    hardTimeouts?: boolean;
    postRollTimeout?: number;
    preRollTimeout?: number;
    requestMode?: "onload" | "onplay" | "ondemand" | "oncue";
    sdkUrl?: string;
    serverUrl?: string;
    showVpaidControls?: boolean;
    useMediaCuePoints?: boolean;
    vpaidMode?: string;
    };
    imaDai?: {
    hideOverlays?: boolean;
    sdkUrl?: string;
    skipPlayedAds?: boolean;
    };
    pinning?: {
    allowOnMobile?: boolean;
    closeable?: boolean;
    height?: null | number;
    manualContainerSize?: boolean;
    posX?: "right" | "left";
    posY?: "top" | "bottom";
    scale?: number;
    viewable?: number;
    width?: null | number;
    };
    playlistUi?: {
    hideOnStart?: boolean;
    horizontal?: boolean;
    nextButton?: boolean;
    nextOverlay?: boolean;
    playOnSelect?: boolean;
    playlistPicker?: boolean;
    repeat?: boolean;
    };
    socialSharing?: {
    deeplinking?: boolean;
    description?: string;
    embedCode?: string;
    embedDimensions?: boolean;
    embedDomain?: string;
    label?: string;
    offset?: string;
    removeDirect?: boolean;
    removeEmbed?: boolean;
    services?: {
    facebook?: boolean;
    linkedin?: boolean;
    pinterest?: boolean;
    tumblr?: boolean;
    twitter?: boolean;
    };
    title?: string;
    url?: string;
    };
    ssai?: {
    enableDiscontinuities?: boolean;
    enableOM?: boolean;
    hideOverlays?: boolean;
    omParams?: {
    accessMode?: "limited" | "domain" | "creative" | "full";
    partnerName?: null | string;
    partnerVersion?: null | string;
    };
    timeout?: number;
    vmapURLParams?: object;
    };
    thumbnails?: {};
    };
    network?: {
    license?: {
    delayFactor?: number;
    fuzzFactor?: number;
    initialDelay?: number;
    maxAttempts?: number;
    timeout?: number;
    };
    manifest?: {
    delayFactor?: number;
    fuzzFactor?: number;
    initialDelay?: number;
    maxAttempts?: number;
    timeout?: number;
    };
    segment?: {
    delayFactor?: number;
    fuzzFactor?: number;
    initialDelay?: number;
    maxAttempts?: number;
    timeout?: number;
    };
    };
    playback?: {
    autoplay?: boolean;
    maxBufferingTime?: number;
    maxBufferingTimeInBackground?: number;
    overrideNative?: boolean;
    preload?: "auto" | "metadata" | "none";
    };
    playlist?: {
    autoAdvanceDelay?: null | number;
    repeat?: boolean;
    };
    ui?: {
    aspectRatio?: string;
    audioOnlyMode?: boolean;
    audioPosterMode?: boolean;
    defaultControlBarComponents?: (undefined | DefaultControlBarComponents)[];
    defaultSmartTvControlBarComponents?: (undefined | DefaultSmartTvControlBarComponents)[];
    defaultUiComponents?: (undefined | DefaultPlayerComponents)[];
    fluid?: boolean;
    fullscreen?: null | "auto" | "show" | "hide";
    height?: number;
    language?: null | LanguageKey;
    nativeControlsForTouch?: boolean;
    noUITitleAttributes?: boolean;
    playsinline?: boolean;
    poster?: null | string;
    preferFullWindow?: boolean;
    skipBackward?: null | 5 | 10 | 30;
    skipForward?: null | 5 | 10 | 30;
    spatialNavigation?: {
    enabled?: boolean;
    horizontalSeek?: boolean;
    };
    width?: number;
    };
    }

    - ##### `Optional` abr?: {
      customPixelRatio?: null | number;
      initialBandwidth?: null | number;
      limitRenditionByPlayerDimensions?: boolean;
      useDevicePixelRatio?: boolean;
      }

      - ##### `Optional` customPixelRatio?: null | number

        If set, this will take the initial player dimensions and multiply it by a custom ratio when the player automatically selects renditions. This means that if you have a player where the dimension is 540p, with a custom pixel ratio of 2, a rendition of 1080p or a lower rendition closest to this value will be chosen. Additionally, if you have a player where the dimension is 540p, with a custom pixel ratio of 0.5, a rendition of 270p or a lower rendition closest to this value will be chosen. When the custom pixel ratio is 0, the lowest available rendition will be selected. It is worth noting that if the player dimension multiplied by the custom pixel ratio is greater than any available rendition resolution, a rendition will be selected based on bandwidth, and the player dimension will be disregarded. `limitRenditionByPlayerDimensions` must be `true` in order for this feature to be enabled. If `useDevicePixelRatio` is set to `true`, the custom pixel ratio will be prioritized and overwrite any previous pixel ratio. Defaults to `null`

      - ##### `Optional` initialBandwidth?: null | number

        The bandwidth value to be used in the calculation for initial playlist selection, before more bandwidth information is seen by the player. Defaults to `null`

      - ##### `Optional` limitRenditionByPlayerDimensions?: boolean

        When this is set to true, rendition selection logic will take into account the player size and rendition resolutions when making a decision. This setting is `true` by default.

      - ##### `Optional` useDevicePixelRatio?: boolean

        If true, this will take the device pixel ratio into account when doing rendition switching. This means that if you have a player with the width of 540px in a high density display with a device pixel ratio of 2, a rendition of 1080p will be allowed. Defaults to `false`

    - ##### `Optional` brightcove?: {
      adConfigId?: null | string;
      applicationId?: null | string;
      authToken?: null | string;
      deliveryConfigId?: null | string;
      livePlaybackToken?: null | string;
      playbackApiBaseUrl?: null | string;
      playerName?: null | string;
      policyKey?: null | string;
      streamConcurrency?: boolean;
      tveToken?: null | string;
      viewerId?: null | string;
      watermarkingToken?: null | string;
      }

      - ##### `Optional` adConfigId?: null | string

        SSAI Config ID. Defaults to `null`

      - ##### `Optional` applicationId?: null | string

        Brightcove Application ID. Defaults to `null`

      - ##### `Optional` authToken?: null | string

        Brightcove JWT used to enforce different restrictions on the account level. Defaults to `null`

      - ##### `Optional` deliveryConfigId?: null | string

        Dynamic Delivery rules configuration ID. Defaults to `null`

      - ##### `Optional` livePlaybackToken?: null | string

        Token used by BLive for DVR and low-latency streams Defaults to `null`

      - ##### `Optional` playbackApiBaseUrl?: null | string

        Changes the Video Cloud base url. Should only be changed if IP restrictions are used with Brightcove Players outside of North America. Defaults to `null`

      - ##### `Optional` playerName?: null | string

        Video Cloud player name associated with a player. Defaults to `'Brightcove Web & Smart TV SDK'`

      - ##### `Optional` policyKey?: null | string

        Video Cloud API policy key. Defaults to `null`

      - ##### `Optional` streamConcurrency?: boolean

        Enable Stream Concurrency. Defaults to `false`

      - ##### `Optional` tveToken?: null | string

        TVE token. defaults to `null`

      - ##### `Optional` viewerId?: null | string

        User identifier for Cross-Device Resume / Viewer Analytics. Used by Data Collection API. Defaults to `null`

      - ##### `Optional` watermarkingToken?: null | string

        Watermarking token. Defaults to `null`

    - ##### `Optional` integrations?: {
      endScreen?: {
      custom?: {
      content?: string;
      };
      social?: {
      deeplinking?: boolean;
      description?: string;
      embedCode?: string;
      embedDimensions?: boolean;
      embedDomain?: string;
      label?: string;
      offset?: string;
      removeDirect?: boolean;
      removeEmbed?: boolean;
      services?: {
      facebook?: boolean;
      linkedin?: boolean;
      pinterest?: boolean;
      tumblr?: boolean;
      twitter?: boolean;
      };
      title?: string;
      url?: string;
      };
      };
      imaClientSide?: {
      clickTrackingElement?: {};
      hardTimeouts?: boolean;
      postRollTimeout?: number;
      preRollTimeout?: number;
      requestMode?: "onload" | "onplay" | "ondemand" | "oncue";
      sdkUrl?: string;
      serverUrl?: string;
      showVpaidControls?: boolean;
      useMediaCuePoints?: boolean;
      vpaidMode?: string;
      };
      imaDai?: {
      hideOverlays?: boolean;
      sdkUrl?: string;
      skipPlayedAds?: boolean;
      };
      pinning?: {
      allowOnMobile?: boolean;
      closeable?: boolean;
      height?: null | number;
      manualContainerSize?: boolean;
      posX?: "right" | "left";
      posY?: "top" | "bottom";
      scale?: number;
      viewable?: number;
      width?: null | number;
      };
      playlistUi?: {
      hideOnStart?: boolean;
      horizontal?: boolean;
      nextButton?: boolean;
      nextOverlay?: boolean;
      playOnSelect?: boolean;
      playlistPicker?: boolean;
      repeat?: boolean;
      };
      socialSharing?: {
      deeplinking?: boolean;
      description?: string;
      embedCode?: string;
      embedDimensions?: boolean;
      embedDomain?: string;
      label?: string;
      offset?: string;
      removeDirect?: boolean;
      removeEmbed?: boolean;
      services?: {
      facebook?: boolean;
      linkedin?: boolean;
      pinterest?: boolean;
      tumblr?: boolean;
      twitter?: boolean;
      };
      title?: string;
      url?: string;
      };
      ssai?: {
      enableDiscontinuities?: boolean;
      enableOM?: boolean;
      hideOverlays?: boolean;
      omParams?: {
      accessMode?: "limited" | "domain" | "creative" | "full";
      partnerName?: null | string;
      partnerVersion?: null | string;
      };
      timeout?: number;
      vmapURLParams?: object;
      };
      thumbnails?: {};
      }

      - ##### `Optional` endScreen?: {
        custom?: {
        content?: string;
        };
        social?: {
        deeplinking?: boolean;
        description?: string;
        embedCode?: string;
        embedDimensions?: boolean;
        embedDomain?: string;
        label?: string;
        offset?: string;
        removeDirect?: boolean;
        removeEmbed?: boolean;
        services?: {
        facebook?: boolean;
        linkedin?: boolean;
        pinterest?: boolean;
        tumblr?: boolean;
        twitter?: boolean;
        };
        title?: string;
        url?: string;
        };
        }

        - ##### `Optional` custom?: {
          content?: string;
          }

          - ##### `Optional` content?: string

            Any string literal or HTML that is rendered on the custom endscreen. Defaults to an empty string.

        - ##### `Optional` social?: {
          deeplinking?: boolean;
          description?: string;
          embedCode?: string;
          embedDimensions?: boolean;
          embedDomain?: string;
          label?: string;
          offset?: string;
          removeDirect?: boolean;
          removeEmbed?: boolean;
          services?: {
          facebook?: boolean;
          linkedin?: boolean;
          pinterest?: boolean;
          tumblr?: boolean;
          twitter?: boolean;
          };
          title?: string;
          url?: string;
          }

          - ##### `Optional` deeplinking?: boolean

            If true, direct links will include a start offset. Can be updated dynamically. Defaults to `false`.

          - ##### `Optional` description?: string

            Used to provide a description for use in the social overlay. Can be updated dynamically. Defaults to an empty string.

          - ##### `Optional` embedCode?: string

            Used to provide a custom embed code that replaces the generated one. Can be updated dynamically. Defaults to an empty string.

          - ##### `Optional` embedDimensions?: boolean

            If true, the current dimensions of the player will be provided in default embed code. Can be updated dynamically. Defaults to `false`.

          - ##### `Optional` embedDomain?: string

            This value is only used when the embed code is not set. Used to provide a custom domain if proxy is being used. Can be updated dynamically. Defaults to `'players.brightcove.net'`.

          - ##### `Optional` label?: string

            Used to provide a label for the social overlay. Can only be updated on initialization of the plugin. Defaults to an empty string.

          - ##### `Optional` offset?: string

            An offset in "hh:mm:ss" format to use for sharing URLs. Can be updated dynamically. Defaults to `'00:00:00'`.

          - ##### `Optional` removeDirect?: boolean

            If true, turns off the direct link. Can be updated dynamically. Defaults to `false`.

          - ##### `Optional` removeEmbed?: boolean

            If true, turns off the embed code. Can be updated dynamically. Defaults to `false`.

          - ##### `Optional` services?: {
            facebook?: boolean;
            linkedin?: boolean;
            pinterest?: boolean;
            tumblr?: boolean;
            twitter?: boolean;
            }

            Can be updated dynamically. See SocialSharingConfigurationServices for defaults.

            - ##### `Optional` facebook?: boolean

              Whether or not to include Facebook. Defaults to `true`

            - ##### `Optional` linkedin?: boolean

              Whether or not to include LinkedIn. Defaults to `true`

            - ##### `Optional` pinterest?: boolean

              Whether or not to include Pinterest. Defaults to `true`

            - ##### `Optional` tumblr?: boolean

              Whether or not to include Tumblr. Defaults to `true`

            - ##### `Optional` twitter?: boolean

              Whether or not to include Twitter. Defaults to `true`

          - ##### `Optional` title?: string

            Used to provide a title for use in the social overlay. Can be updated dynamically. Defaults to an empty string.

          - ##### `Optional` url?: string

            Used to provide a custom URL that replaces the generated one. Can be updated dynamically. Defaults to an empty string.

      - ##### `Optional` imaClientSide?: {
        clickTrackingElement?: {};
        hardTimeouts?: boolean;
        postRollTimeout?: number;
        preRollTimeout?: number;
        requestMode?: "onload" | "onplay" | "ondemand" | "oncue";
        sdkUrl?: string;
        serverUrl?: string;
        showVpaidControls?: boolean;
        useMediaCuePoints?: boolean;
        vpaidMode?: string;
        }

        - ##### `Optional` clickTrackingElement?: {}

          Specifies the alternative video ad click element. Leave this undefined to let the IMA SDK handle clicks. More details are available in the parameter documentation for the IMA SDK `AdDisplayContainer`. Defaults to `undefined`.

        - ##### `Optional` hardTimeouts?: boolean

          Abandon ads that finish loading after they have timed out. Defaults to `true`.

        - ##### `Optional` postRollTimeout?: number

          Controls postrollTimeout setting in videojs-contrib-ads. If provided, overrides any value set for timeout. Default Value: same as timeout.

        - ##### `Optional` preRollTimeout?: number

          Controls prerollTimeout setting in videojs-contrib-ads. If provided, overrides any value set for timeout. Default Value: same as timeout.

        - ##### `Optional` requestMode?: "onload" | "onplay" | "ondemand" | "oncue"

          When to request ads: during player load ('onload'), during playback ('onplay'), ondemand ('ondemand'), cuechange ('oncue'). Defaults to `'onload'`.

        - ##### `Optional` sdkUrl?: string

          The URL of the IMA3 SDK. Defaults to `'${protocol}//imasdk.googleapis.com/js/sdkloader/ima3.js'`.

        - ##### `Optional` serverUrl?: string

          The URL of the ad server to make requests to during playback. Defaults to `'${protocol}//pubads.g.doubleclick.net/gampad/ads?sz=400x300&iu=%2F6062%2Fiab_vast_samples&ciu_szs=300x250%2C728x90&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url=[referrer_url]&correlator=[timestamp]&cust_params=iab_vast_samples%3Dlinear'`.

        - ##### `Optional` showVpaidControls?: boolean

          Show Brightcove player custom controls for VPAID ads. They may or may not work. Defaults to `false`.

        - ##### `Optional` useMediaCuePoints?: boolean

          Enables Video Cloud ad cue points being used to trigger ads. Default Value: `false`.

        - ##### `Optional` vpaidMode?: string

          Specify VPAID 2 mode in the IMA HTML5 SDK. If none is provided, uses the SDK's default, which is currently ENABLED. Default Value: `undefined`.

      - ##### `Optional` imaDai?: {
        hideOverlays?: boolean;
        sdkUrl?: string;
        skipPlayedAds?: boolean;
        }

        - ##### `Optional` hideOverlays?: boolean

          If true, it hides overlays while ads are playing. Defaults to `false`

        - ##### `Optional` sdkUrl?: string

          The URL of your self-hosted IMA DAI SDK. Defaults to `'//imasdk.googleapis.com/js/sdkloader/ima3_dai.js'`

        - ##### `Optional` skipPlayedAds?: boolean

          Whether to skip over ads that have already played when seeking. Defaults to `true`

      - ##### `Optional` pinning?: {
        allowOnMobile?: boolean;
        closeable?: boolean;
        height?: null | number;
        manualContainerSize?: boolean;
        posX?: "right" | "left";
        posY?: "top" | "bottom";
        scale?: number;
        viewable?: number;
        width?: null | number;
        }

        - ##### `Optional` allowOnMobile?: boolean

          By default, pinning mode will not work on Android or iOS mobile devices. Defaults to `false`.

        - ##### `Optional` closeable?: boolean

          By default, pinning mode will include a close button, which the user can click to disable pinning mode. Defaults to `true`.

        - ##### `Optional` height?: null | number

          By default, the plugin will scale down the player's dimensions by a factor determined by the `scale` option. However, providing a `height` (or `width`) will override the default scaling and set the size of the scaled-down player explicitly. If only one dimension is provided, the other will be scaled down to maintain the aspect ratio. If both dimensions are provided, the player will be set to the exact, specified size. Defaults to `null`.

        - ##### `Optional` manualContainerSize?: boolean

          By default, a player with this plugin enabled will keep the physical dimensions of the special container element in sync with the player's dimensions. However, this doesn't work for all cases, so it can be disabled by setting this option to `false`. When doing so, the container element will behave like a normal block element. This means that users of the plugin will need to manage its size on their own. Defaults to `false`.

        - ##### `Optional` posX?: "right" | "left"

          The horizontal alignment of the player when it is in pinning mode. Defaults to `'right'`.

        - ##### `Optional` posY?: "top" | "bottom"

          The vertical alignment of the player when it is in pinning mode. Defaults to `'bottom'`.

        - ##### `Optional` scale?: number

          The scaling factor applied to the player when it is in pinning mode. Must be a number greater than zero and less than or equal to 1. Defaults to `2/3`.

        - ##### `Optional` viewable?: number

          The threshold at which the player is considered viewable. In other words, when this percentage of the player is visible in the browser's viewport, it is considered viewable. For example, with the default of 0.8, the player is not considered viewable unless 80% of it is visible in the viewport. Must be a number greater than or equal to 0 or less than or equal to 1. Defaults to `0.8`.

        - ##### `Optional` width?: null | number

          By default, the plugin will scale down the player's dimensions by a factor determined by the `scale` option. However, providing a `width` (or `height`) will override the default scaling and set the size of the scaled-down player explicitly. Defaults to `null`.

      - ##### `Optional` playlistUi?: {
        hideOnStart?: boolean;
        horizontal?: boolean;
        nextButton?: boolean;
        nextOverlay?: boolean;
        playOnSelect?: boolean;
        playlistPicker?: boolean;
        repeat?: boolean;
        }

        - ##### `Optional` hideOnStart?: boolean

          Defaults to `false`.

        - ##### `Optional` horizontal?: boolean

          Defaults to `false`.

        - ##### `Optional` nextButton?: boolean

          Defaults to `true`.

        - ##### `Optional` nextOverlay?: boolean

          Defaults to `true`.

        - ##### `Optional` playOnSelect?: boolean

          Defaults to `false`.

        - ##### `Optional` playlistPicker?: boolean

          Defaults to `true`.

        - ##### `Optional` repeat?: boolean

          Defaults to `false`.

      - ##### `Optional` socialSharing?: {
        deeplinking?: boolean;
        description?: string;
        embedCode?: string;
        embedDimensions?: boolean;
        embedDomain?: string;
        label?: string;
        offset?: string;
        removeDirect?: boolean;
        removeEmbed?: boolean;
        services?: {
        facebook?: boolean;
        linkedin?: boolean;
        pinterest?: boolean;
        tumblr?: boolean;
        twitter?: boolean;
        };
        title?: string;
        url?: string;
        }

        - ##### `Optional` deeplinking?: boolean

          If true, direct links will include a start offset. Can be updated dynamically. Defaults to `false`.

        - ##### `Optional` description?: string

          Used to provide a description for use in the social overlay. Can be updated dynamically. Defaults to an empty string.

        - ##### `Optional` embedCode?: string

          Used to provide a custom embed code that replaces the generated one. Can be updated dynamically. Defaults to an empty string.

        - ##### `Optional` embedDimensions?: boolean

          If true, the current dimensions of the player will be provided in default embed code. Can be updated dynamically. Defaults to `false`.

        - ##### `Optional` embedDomain?: string

          This value is only used when the embed code is not set. Used to provide a custom domain if proxy is being used. Can be updated dynamically. Defaults to `'players.brightcove.net'`.

        - ##### `Optional` label?: string

          Used to provide a label for the social overlay. Can only be updated on initialization of the plugin. Defaults to an empty string.

        - ##### `Optional` offset?: string

          An offset in "hh:mm:ss" format to use for sharing URLs. Can be updated dynamically. Defaults to `'00:00:00'`.

        - ##### `Optional` removeDirect?: boolean

          If true, turns off the direct link. Can be updated dynamically. Defaults to `false`.

        - ##### `Optional` removeEmbed?: boolean

          If true, turns off the embed code. Can be updated dynamically. Defaults to `false`.

        - ##### `Optional` services?: {
          facebook?: boolean;
          linkedin?: boolean;
          pinterest?: boolean;
          tumblr?: boolean;
          twitter?: boolean;
          }

          Can be updated dynamically. See SocialSharingConfigurationServices for defaults.

          - ##### `Optional` facebook?: boolean

            Whether or not to include Facebook. Defaults to `true`

          - ##### `Optional` linkedin?: boolean

            Whether or not to include LinkedIn. Defaults to `true`

          - ##### `Optional` pinterest?: boolean

            Whether or not to include Pinterest. Defaults to `true`

          - ##### `Optional` tumblr?: boolean

            Whether or not to include Tumblr. Defaults to `true`

          - ##### `Optional` twitter?: boolean

            Whether or not to include Twitter. Defaults to `true`

        - ##### `Optional` title?: string

          Used to provide a title for use in the social overlay. Can be updated dynamically. Defaults to an empty string.

        - ##### `Optional` url?: string

          Used to provide a custom URL that replaces the generated one. Can be updated dynamically. Defaults to an empty string.

      - ##### `Optional` ssai?: {
        enableDiscontinuities?: boolean;
        enableOM?: boolean;
        hideOverlays?: boolean;
        omParams?: {
        accessMode?: "limited" | "domain" | "creative" | "full";
        partnerName?: null | string;
        partnerVersion?: null | string;
        };
        timeout?: number;
        vmapURLParams?: object;
        }

        - ##### `Optional` enableDiscontinuities?: boolean

          If true, request the video source with HLS discontinuities or DASH multiperiod. Only valid for VOD SSAI. Defaults to `true`

        - ##### `Optional` enableOM?: boolean

          If true (and the necessary Open Measurement SDK scripts are embedded), the plugin will use values from the omParams object to start an OM manager and create a new OM session client. Defaults to `false`

        - ##### `Optional` hideOverlays?: boolean

          If true, the countdown timer and Learn More click through overlays will not be shown while ads are playing. Defaults to `false`

        - ##### `Optional` omParams?: {
          accessMode?: "limited" | "domain" | "creative" | "full";
          partnerName?: null | string;
          partnerVersion?: null | string;
          }

          An object describing the required parameters for starting an Open Measurement session client and OM ad features.

          - ##### `Optional` accessMode?: "limited" | "domain" | "creative" | "full"

            Preferred access mode string. As of October 2021, the creative access mode is translated to full by the OM manager, per session client requirements, and will appear as full in the OM ad session call data. Defaults to 'limited'

          - ##### `Optional` partnerName?: null | string

            Partner name string. Defaults to null

          - ##### `Optional` partnerVersion?: null | string

            Partner version string in a semver format. Defaults to null

        - ##### `Optional` timeout?: number

          The number of milliseconds after which an XHR to fetch a VMAP will time out. Defaults to `45000`

        - ##### `Optional` vmapURLParams?: object

          An object containing the parameters for replacing arbitrary values in the VMAP source URL. See: https://apis.support.brightcove.com/ssai/getting-started/video-cloud-ssai-ad-config-api.html#URL_variables Object keys can have any name. The name of this variable must match the VMAP source URL param string or else it will not be replaced. Defaults to an empty object

      - ##### `Optional` thumbnails?: {}

    - ##### `Optional` network?: {
      license?: {
      delayFactor?: number;
      fuzzFactor?: number;
      initialDelay?: number;
      maxAttempts?: number;
      timeout?: number;
      };
      manifest?: {
      delayFactor?: number;
      fuzzFactor?: number;
      initialDelay?: number;
      maxAttempts?: number;
      timeout?: number;
      };
      segment?: {
      delayFactor?: number;
      fuzzFactor?: number;
      initialDelay?: number;
      maxAttempts?: number;
      timeout?: number;
      };
      }

      - ##### `Optional` license?: {
        delayFactor?: number;
        fuzzFactor?: number;
        initialDelay?: number;
        maxAttempts?: number;
        timeout?: number;
        }

        - ##### `Optional` delayFactor?: number

          Increase delay for each retry: delay += (delay * delayFactor). Defaults to `0.2`

        - ##### `Optional` fuzzFactor?: number

          Do not send retry requests in the exact same timing, but rather fuzz it by some range, eg: if the delay = 3000, and fuzz factor is 0.1, then the requests will be made somewhere in the following time range range: [2700, 3300]. Defaults to `0.2`

        - ##### `Optional` initialDelay?: number

          The base delay in ms between retries. Defaults to `1_000`

        - ##### `Optional` maxAttempts?: number

          The maximum number of requests before we fail. Defaults to `1`

        - ##### `Optional` timeout?: number

          The timeout in ms, after which we abort. Defaults to `20_000`

      - ##### `Optional` manifest?: {
        delayFactor?: number;
        fuzzFactor?: number;
        initialDelay?: number;
        maxAttempts?: number;
        timeout?: number;
        }

        - ##### `Optional` delayFactor?: number

          Increase delay for each retry: delay += (delay * delayFactor). Defaults to `0.2`

        - ##### `Optional` fuzzFactor?: number

          Do not send retry requests in the exact same timing, but rather fuzz it by some range, eg: if the delay = 3000, and fuzz factor is 0.1, then the requests will be made somewhere in the following time range range: [2700, 3300]. Defaults to `0.2`

        - ##### `Optional` initialDelay?: number

          The base delay in ms between retries. Defaults to `1_000`

        - ##### `Optional` maxAttempts?: number

          The maximum number of requests before we fail. Defaults to `1`

        - ##### `Optional` timeout?: number

          The timeout in ms, after which we abort. Defaults to `20_000`

      - ##### `Optional` segment?: {
        delayFactor?: number;
        fuzzFactor?: number;
        initialDelay?: number;
        maxAttempts?: number;
        timeout?: number;
        }

        - ##### `Optional` delayFactor?: number

          Increase delay for each retry: delay += (delay * delayFactor). Defaults to `0.2`

        - ##### `Optional` fuzzFactor?: number

          Do not send retry requests in the exact same timing, but rather fuzz it by some range, eg: if the delay = 3000, and fuzz factor is 0.1, then the requests will be made somewhere in the following time range range: [2700, 3300]. Defaults to `0.2`

        - ##### `Optional` initialDelay?: number

          The base delay in ms between retries. Defaults to `1_000`

        - ##### `Optional` maxAttempts?: number

          The maximum number of requests before we fail. Defaults to `1`

        - ##### `Optional` timeout?: number

          The timeout in ms, after which we abort. Defaults to `20_000`

    - ##### `Optional` playback?: {
      autoplay?: boolean;
      maxBufferingTime?: number;
      maxBufferingTimeInBackground?: number;
      overrideNative?: boolean;
      preload?: "auto" | "metadata" | "none";
      }

      - ##### `Optional` autoplay?: boolean

        Whether or not the player should attempt to autoplay. If `true`, the player will do all it can to achieve successful autoplay, including muting the player if necessary. Defaults to `false`.

      - ##### `Optional` maxBufferingTime?: number

        The number of milliseconds the player should wait before triggering a visible timeout error on the player. Defaults to 45 seconds

      - ##### `Optional` maxBufferingTimeInBackground?: number

        The same as maxBufferingTime, but applies only when the player is in the background. Defaults to 5 minutes.

      - ##### `Optional` overrideNative?: boolean

        When overrideNative is true, if the platform supports Media Source Extensions videojs-http-streaming will take over HLS playback to provide a more consistent experience. When unset (undefined): for any safari browser OR any browser on iOS/iPadOS: overrideNative: false otherwise: overrideNative: true

        Defaults to undefined.

      - ##### `Optional` preload?: "auto" | "metadata" | "none"

        Whether any metadata and/or media should be preloaded before playback. Values are the same as the HTMLMediaElement `preload` property. Defaults to `'auto'`

    - ##### `Optional` playlist?: {
      autoAdvanceDelay?: null | number;
      repeat?: boolean;
      }

      - ##### `Optional` autoAdvanceDelay?: null | number

        A number in ms indicating the delay after a playlist item finishes before automatically advancing to the next item. If the value is `0` or `null`, then the playlist will not auto-advance. Defaults to `null`.

      - ##### `Optional` repeat?: boolean

        Determines if playlists will repeat from the beginning when it reaches the end. Defaults to `true`

    - ##### `Optional` ui?: {
      aspectRatio?: string;
      audioOnlyMode?: boolean;
      audioPosterMode?: boolean;
      defaultControlBarComponents?: (undefined | DefaultControlBarComponents)[];
      defaultSmartTvControlBarComponents?: (undefined | DefaultSmartTvControlBarComponents)[];
      defaultUiComponents?: (undefined | DefaultPlayerComponents)[];
      fluid?: boolean;
      fullscreen?: null | "auto" | "show" | "hide";
      height?: number;
      language?: null | LanguageKey;
      nativeControlsForTouch?: boolean;
      noUITitleAttributes?: boolean;
      playsinline?: boolean;
      poster?: null | string;
      preferFullWindow?: boolean;
      skipBackward?: null | 5 | 10 | 30;
      skipForward?: null | 5 | 10 | 30;
      spatialNavigation?: {
      enabled?: boolean;
      horizontalSeek?: boolean;
      };
      width?: number;
      }

      - ##### `Optional` aspectRatio?: string

        Puts the player in fluid mode and the value is used when calculating the dynamic size of the player. The value should represent a ratio - two numbers separated by a colon (e.g. "16:9" or "4:3"). Defaults to `'16:9'`. Can be updated dynamically.

      - ##### `Optional` audioOnlyMode?: boolean

        If set to true, it asynchronously hides all player components except the control bar, as well as any specific controls that are needed only for video. Can be updated dynamically.

      - ##### `Optional` audioPosterMode?: boolean

        If set to true, it enables the poster viewer experience by hiding the video element and displaying the poster image persistently. Can be updated dynamically.

      - ##### `Optional` defaultControlBarComponents?: (undefined | DefaultControlBarComponents)[]

      - ##### `Optional` defaultSmartTvControlBarComponents?: (undefined | DefaultSmartTvControlBarComponents)[]

      - ##### `Optional` defaultUiComponents?: (undefined | DefaultPlayerComponents)[]

        This is used to determine which default UI Components will be attached to the player. This should have a value of an array of strings of the default player component names. Defaults to the list of DefaultPlayerComponents.

      - ##### `Optional` fluid?: boolean

        When true, the player will have a fluid size. In other words, it will scale to fit its container at the video's intrinsic aspect ratio, or at a specified aspectRatio. Can be updated dynamically.

      - ##### `Optional` fullscreen?: null | "auto" | "show" | "hide"

        This can be set to pass in the fullscreen navigationUi options. For more info, see: https://fullscreen.spec.whatwg.org/#dictdef-fullscreenoptions

      - ##### `Optional` height?: number

        Sets the display height of the video player in pixels. Can be updated dynamically. Defaults to `360`

      - ##### `Optional` language?: null | LanguageKey

        Select a specific language for localization. Defaults to null The player language is set to one of the following in descending priority:

        - The language specified in setup options as above.
        - The language specified by the closet element with a lang attribute, usually in the html tag.
        - Browser language preference (the first language if more than one is configured)
        - LanguageKey.En Can be updated dynamically.

      - ##### `Optional` nativeControlsForTouch?: boolean

        Determines if native controls should be used for touch devices.

      - ##### `Optional` noUITitleAttributes?: boolean

        Control whether UI elements have a title attribute. A title attribute is shown on mouse hover, which can be helpful for usability, but has drawbacks for accessibility.

      - ##### `Optional` playsinline?: boolean

        Indicates to the browser that non-fullscreen playback is preferred when fullscreen playback is the native default, such as in iOS Safari. See: https://html.spec.whatwg.org/#attr-video-playsinline Can be updated dynamically.

      - ##### `Optional` poster?: null | string

        A URL to an image that displays before the video begins playing. This is often a frame of the video or a custom title screen. Can be updated dynamically.

      - ##### `Optional` preferFullWindow?: boolean

        Setting this to true will change fullscreen behaviour on devices which do not support the HTML5 fullscreen API but do support fullscreen on the video element, i.e. iPhone. Instead of making the video fullscreen, the player will be stretched to fill the browser window.

      - ##### `Optional` skipBackward?: null | 5 | 10 | 30

        If specified, the player displays a control allowing the user to jump back in a video by the specified number of seconds. Valid values are `5` | `10` | `30` Defaults to `null`

      - ##### `Optional` skipForward?: null | 5 | 10 | 30

        If specified, the player displays a control allowing the user to jump forward in a video by the specified number of seconds. Valid values are `5` | `10` | `30` Defaults to `null`

      - ##### `Optional` spatialNavigation?: {
        enabled?: boolean;
        horizontalSeek?: boolean;
        }

        Configuration for enabling and managing spatial navigation within the player.

        - ##### `Optional` enabled?: boolean

          Whether spatial navigation functionality should be enabled. Defaults to `false`

        - ##### `Optional` horizontalSeek?: boolean

          Whether horizontal seeking should be enabled. Defaults to `false`

      - ##### `Optional` width?: number

        Sets the display width of the video player in pixels. Can be updated dynamically. Defaults to `640`

  #### Returns PlayerConfiguration

  Inherited from Player.updateConfiguration