[@liveryvideo/interactive-bridge](../index.md) / AbstractPlayerBridge

# Abstract Class: AbstractPlayerBridge

Abstract player bridge class which implements part of the player side API based on browser logic
and defines abstract methods to be implemented to complete support for all InteractiveBridge commands.

## Extends

- [`LiveryBridge`](LiveryBridge.md)

## Extended by

- [`MockPlayerBridge`](MockPlayerBridge.md)

## Constructors

### Constructor

> **new AbstractPlayerBridge**(`target?`): `AbstractPlayerBridge`

Constructs a LiveryBridge.

Target can be either undefined, a LiveryBridge instance or a window and origin.
If undefined this waits for the other bridge to be passed this instance
and for that in turn to pass it's reference here.

#### Parameters

##### target?

[`LiveryBridgeTarget`](../type-aliases/LiveryBridgeTarget.md)

LiveryBridge target

#### Returns

`AbstractPlayerBridge`

#### Inherited from

[`LiveryBridge`](LiveryBridge.md).[`constructor`](LiveryBridge.md#constructor)

## Methods

### authenticate()

> **authenticate**(`tokenOrClaims?`): `Promise`\<`unknown`\>

Authenticate user in interactive layer with specified token or claims,
or logout the user by passing an `undefined` value.

#### Parameters

##### tokenOrClaims?

JWT token string or claims to authenticate with or undefined to logout

`string` | [`AuthClaims`](../interfaces/AuthClaims.md)

#### Returns

`Promise`\<`unknown`\>

***

### ~~options()~~

> **options**(): `Promise`\<[`InteractivePlayerOptions`](../interfaces/InteractivePlayerOptions.md)\>

Returns promise of options from interactive layer for the player.
Or default options if the interactive bridge doesn't support this/these yet.

Note: In the future this could also pass options from player to the interactive layer.

#### Returns

`Promise`\<[`InteractivePlayerOptions`](../interfaces/InteractivePlayerOptions.md)\>

#### Deprecated

In the next major version options passing should be integrated into the LiveryBridge handshake.

***

### registerPlayerCommand()

> **registerPlayerCommand**(`name`, `handler`): `void`

Register `handler` function to be called with `arg` and `listener` when `sendPlayerCommand()` is called
from the interactive layer side with matching `name`.

#### Parameters

##### name

`string`

##### handler

(`arg`, `listener`) => `unknown`

#### Returns

`void`

***

### sendInteractiveCommand()

> **sendInteractiveCommand**(`name`, `arg?`, `listener?`): `Promise`\<`unknown`\>

Returns promise of value returned by the interactive layer's custom command handler with matching `name` that is passed `arg`.
Any `handler` `listener` calls will subsequently also be bridged to this `listener` callback.

#### Parameters

##### name

`string`

##### arg?

`unknown`

##### listener?

(`value`) => `void`

#### Returns

`Promise`\<`unknown`\>

***

### unregisterPlayerCommand()

> **unregisterPlayerCommand**(`name`): `void`

Unregister custom interactive command by name.

#### Parameters

##### name

`string`

#### Returns

`void`
