# ⚠️ DEPRECATED – Storm JavaScript Player

**This package has been renamed to [`@stormstreaming/player-ui`](https://www.npmjs.com/package/@stormstreaming/player-ui).**

Please update your dependencies:

```bash
npm uninstall @stormstreaming/stormplayer
npm install @stormstreaming/player-ui
```

StormPlayer UI is now part of the new Storm Player ecosystem:

- Core playback engine: [`@stormstreaming/player-core`](https://www.npmjs.com/package/@stormstreaming/player-core)
- UI player: [`@stormstreaming/player-ui`](https://www.npmjs.com/package/@stormstreaming/player-ui)
- React wrapper: [`@stormstreaming/player-react`](https://www.npmjs.com/package/@stormstreaming/player-react)


---

## Legacy Package

Storm JavaScript Player is a customizable UI wrapper for Storm Library.  
It is part of the *Storm Streaming Suite* and requires a *Storm Streaming Server* instance or *Storm Cloud* subscription.

---

## Legacy Installation

### NPM

```bash
npm install @stormstreaming/stormplayer
```

### Yarn

```bash
yarn add @stormstreaming/stormplayer
```

### Direct script include (IIFE)

Download `dist/iife/index.js` and include it on your page:

```html
<script src="dist/iife/index.js"></script>
<div id="container"></div>
<script>
    const streamConfig = {
        stream: {
            serverList: [{ host: "localhost", application: "live", port: 80, ssl: false }],
            streamKey: "test"
        },
        settings: {
            autoStart: true,
            debug: { console: { enabled: true } }
        }
    };

    const playerConfig = {
        containerID: "container",
        aspectRatio: "16:9",
        width: "100%",
        title: "Title goes here",
        subtitle: "This is going to be epic!"
    };

    // Legacy API
    const player = stormPlayer(playerConfig, streamConfig);
</script>
```

---

## Legacy ESM Usage

```javascript
import { StormPlayer } from "@stormstreaming/stormplayer";

const streamConfig = {
    stream: {
        serverList: [{ host: "localhost", application: "live", port: 80, ssl: false }],
        streamKey: "test"
    },
    settings: {
        autoStart: true,
        debug: { console: { enabled: true } }
    }
};

const playerConfig = {
    containerID: "container",
    aspectRatio: "16:9",
    width: "100%",
    title: "Title goes here",
    subtitle: "This is going to be epic!"
};

const player = new StormPlayer(playerConfig, streamConfig);
```

---

## Legacy Events (Overview)

The player exposes:

- **UI events** – e.g. `playClick`, `pauseClick`, `fullscreenEnter`, `guiShow`, `guiHide`
- **Library events** – e.g. `playerCoreReady`, `playbackStart`, `streamStateChange`, `bufferingStart`, `volumeChange`

Basic usage:

```javascript
player.addEventListener("playerCoreReady", () => {
    console.log("Player is ready");
});

player.addEventListener("playbackStart", () => {
    console.log("Playback started");
});
```

For a full list of events and objects such as `PlaybackState`, `StreamState`, or `QualityItem`, please refer to the legacy documentation:  
https://www.stormstreaming.com/docs/v3

---

## Browser Compatibility (Legacy)

- Edge 12+
- Chrome 31+
- Firefox 42+
- Safari 13+
- Opera 15+

Older browsers can use HLS fallback mode.

---

## License

See [LICENSE.txt](LICENSE.txt).
