Handles dynamic ad insertion streams. This class manages interactions with DAI servers, handles tracking pings, and emits stream and ad events.

| Constructors ||
|---|---|
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.constructor` |   |

| Methods ||
|---|---|
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.addEventListener` | Adds a listener for the given event type. |
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.getStreamId` | Returns the stream ID for the current stream. |
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.loadStreamMetadata` | Requests the DAI SDK to load ad metadata and emits a `LOADED` stream event. |
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.removeEventListener` | Removes a listener for the given [StreamEvent](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamEvent) event type. |
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.replaceAdTagParameters` | Replaces all of the ad tag parameters used for upcoming ad requests for a live stream. |
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.requestStream` | Requests a stream for IMA DAI to load using provided stream parameters. |
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager#google.ima.cast.dai.api.StreamManager.reset` | Resets the stream manager and removes any continuous polling. |

## Constructors

*** ** * ** ***

### constructor

`new StreamManager(mediaElement?: HTMLMediaElement): https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager`

| Parameters ||
|---|---|
| `` `Optional` mediaElement: HTMLMediaElement `` | The HTML media element where playback occurs. If you are using a custom player, you must provide this parameter. |

| Returns ||
|---|---|
| `https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/class/google.ima.cast.dai.api.StreamManager` |   |

## Methods

*** ** * ** ***

### addEventListener

`addEventListener(type: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/namespace/google.ima.cast.dai.api.StreamEvent#google.ima.cast.dai.api.StreamEvent.Type, listener: ((event: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamEvent) => void)): void` Adds a listener for the given event type.

| Parameters ||
|---|---|
| `type: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/namespace/google.ima.cast.dai.api.StreamEvent#google.ima.cast.dai.api.StreamEvent.Type` | The stream event type. |
| `listener: ((event: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamEvent) => void)` | A callback function for the ad listener. |

*** ** * ** ***

### getStreamId

`getStreamId(): string` Returns the stream ID for the current stream.

| Returns ||
|---|---|
| `string` |   |

*** ** * ** ***

### loadStreamMetadata

`loadStreamMetadata(): void` Requests the DAI SDK to load ad metadata and emits a `LOADED` stream event. Manually call this method when you retrieve the stream manifest from your third party video stitcher. This method is only for Pod Serving VOD streams with third party video stitcher.

*** ** * ** ***

### removeEventListener

`removeEventListener(type: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/namespace/google.ima.cast.dai.api.StreamEvent#google.ima.cast.dai.api.StreamEvent.Type, listener: ((event: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamEvent) => void)): void` Removes a listener for the given [StreamEvent](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamEvent) event type. To successfully remove a listener, the listener parameter you pass to this method must be equal by reference to the one previously passed to the `addEventListener` method.

| Parameters ||
|---|---|
| `type: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/namespace/google.ima.cast.dai.api.StreamEvent#google.ima.cast.dai.api.StreamEvent.Type` | The type of event for which to remove the listener. |
| `listener: ((event: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamEvent) => void)` | The function to remove as a listener. |

*** ** * ** ***

### replaceAdTagParameters

`replaceAdTagParameters(adTagParameters: {
[key:
string]: string;
}): void` Replaces all of the ad tag parameters used for upcoming ad requests for a live stream.

| Parameters ||
|---|---|
| `adTagParameters: { [key: string]: string; }` | The replacement ad tag parameters. Must have string values. |

*** ** * ** ***

### requestStream

`requestStream(loadRequest: LoadRequestData, streamRequest: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamRequest): Promise<LoadRequestData | ErrorData>` Requests a stream for IMA DAI to load using provided stream parameters.

| Parameters ||
|---|---|
| `loadRequest: LoadRequestData` | an instance of the CAF `LoadRequestData` class that contains parameters to load the stream. |
| `streamRequest: https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast/reference/interface/google.ima.cast.dai.api.StreamRequest` | contains parameters to load the stream metadata. |

| Returns ||
|---|---|
| `Promise<LoadRequestData | ErrorData>` |   |

*** ** * ** ***

### reset

`reset(): void` Resets the stream manager and removes any continuous polling.