# @videodock/capacitor-media-session

> Capacitor plugin which manages the media session

Latest version **0.0.3** (published 2022-03-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install @videodock/capacitor-media-session
pnpm add @videodock/capacitor-media-session
yarn add @videodock/capacitor-media-session
bun add @videodock/capacitor-media-session
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.3 |
| Published | 2022-03-02 |
| First published | 2022-01-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 38.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | christiaan |
| Keywords | capacitor, plugin, native |

## Links

- npm: https://www.npmjs.com/package/@videodock/capacitor-media-session
- Repository: https://github.com/Videodock/capacitor-media-session
- Issues: https://github.com/Videodock/capacitor-media-session/issues
- npm.io page: https://npm.io/package/@videodock/capacitor-media-session

## Recent versions

- 0.0.3 (latest) — 2022-03-02
- 0.0.4 (v0.4.0) — 2022-07-11
- 0.0.2 — 2022-01-07

## README

# capacitor-media-session

Capacitor plugin which manages the media session and fire media events for Android TV.

## Install

```bash
yarn add @videodock/capacitor-media-session
npx cap sync
```

## Usage

All API methods are exposed on the `CapacitorMediaSession` plugin. Import the plugin like so:

```js
import { CapacitorMediaSession } from '@videodock/capacitor-media-session';
```

You can now call any API method:

```js
// call when player gets mounted
CapacitorMediaSession.initMediaSession(mediaState);
```

```js
// call when player gets unmounted/stopped
CapacitorMediaSession.releaseMediaSession();
```

```js
// call when media state changes (one of the MediaState properties) 
CapacitorMediaSession.releaseMediaSession(mediaState);
```

## API

<docgen-index>

* [`initMediaSession(...)`](#initmediasession)
* [`releaseMediaSession()`](#releasemediasession)
* [`setMediaState(...)`](#setmediastate)
* [`addListener('mediaSessionEvent', ...)`](#addlistenermediasessionevent)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### initMediaSession(...)

```typescript
initMediaSession(mediaState: MediaState) => Promise<{ call: string; }>
```

| Param            | Type                                              |
| ---------------- | ------------------------------------------------- |
| **`mediaState`** | <code><a href="#mediastate">MediaState</a></code> |

**Returns:** <code>Promise&lt;{ call: string; }&gt;</code>

--------------------


### releaseMediaSession()

```typescript
releaseMediaSession() => Promise<{ call: string; }>
```

**Returns:** <code>Promise&lt;{ call: string; }&gt;</code>

--------------------


### setMediaState(...)

```typescript
setMediaState(mediaState: MediaState) => Promise<{ call: string; mediaState: MediaState; }>
```

| Param            | Type                                              |
| ---------------- | ------------------------------------------------- |
| **`mediaState`** | <code><a href="#mediastate">MediaState</a></code> |

**Returns:** <code>Promise&lt;{ call: string; mediaState: <a href="#mediastate">MediaState</a>; }&gt;</code>

--------------------


### addListener('mediaSessionEvent', ...)

```typescript
addListener(eventName: 'mediaSessionEvent', listenerFunc: MediaSessionListenerFunc) => Promise<PluginListenerHandle> & PluginListenerHandle
```

| Param              | Type                                                                          |
| ------------------ | ----------------------------------------------------------------------------- |
| **`eventName`**    | <code>'mediaSessionEvent'</code>                                              |
| **`listenerFunc`** | <code><a href="#mediasessionlistenerfunc">MediaSessionListenerFunc</a></code> |

**Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt; & <a href="#pluginlistenerhandle">PluginListenerHandle</a></code>

--------------------


### Interfaces


#### PluginListenerHandle

| Prop         | Type                                      |
| ------------ | ----------------------------------------- |
| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |


### Type Aliases


#### MediaState

<code>{ isPlaying: boolean; isActive: boolean; title: string; subtitle: string; artworkUri: string; position: number; }</code>


#### MediaSessionListenerFunc

<code>(event: <a href="#mediasessionevent">MediaSessionEvent</a>): void</code>


#### MediaSessionEvent

<code>{ eventName: <a href="#mediasessioneventtype">MediaSessionEventType</a> }</code>


#### MediaSessionEventType

<code>'onPlay' | 'onPause' | 'onPausePlay' | 'onStop' | 'onNext' | 'onPrev' | 'onFastForward' | 'onRewind'</code>

</docgen-api>

---
_Source: https://npm.io/package/@videodock/capacitor-media-session · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
