0.0.1 • Published 10 months ago

ermis-media-js-sdk v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Ermis Media JS SDK

JS SDK for interacting with Ermis Media Server.

Installation

This library is published in the NPM registry and can be installed using any compatible package manager.

npm install ermis-media-js-sdk --save

# For Yarn, use the command below.
yarn add ermis-media-js-sdk

Installation from CDN

This module has an UMD bundle available through JSDelivr and Unpkg CDNs.

<!-- For UNPKG use the code below. -->
<script src="https://unpkg.com/ermis-media-js-sdk"></script>

<!-- For JSDelivr use the code below. -->
<script src="https://cdn.jsdelivr.net/npm/ermis-media-js-sdk"></script>

<script>
  // UMD module is exposed through the "Ermis" global variable.
  console.log(Ermis);
</script>

Documentation

Usage

Connect to a Session

import { createSession } from "ermis-media-js-sdk";

const url = "<YOUR SERVER URL>";
const token = "<YOUR SERVER TOKEN IF NEEDED>";

// This can be any MediaStream
const stream = await navigator.mediaDevices.getUserMedia({
  audio: true,
  video: true,
});

const session = createSession(url, {
  roomId: "Echo Room",
  peerId: "echo-client",
  token,
  // You can optionally initialize the session with senders and receivers so we won't have to keep
  // updating SDP every time we create a new senders and receivers
  senders: [
    { stream: stream, name: "audio_main", kind: "audio" },
    {
      stream: stream,
      name: "video_main",
      kind: "video",
      // Optionally, you can add simulcast
      simulcast: true,
    },
  ],
  receivers: {
    audio: 1,
    video: 1,
  },
});

// This will connect to the server and send the initialized MediaStream from above 
session.connect();

Consume the stream

By issued stream name

const consumer = session.createConsumerPair(peerId, "audio_main", "video_main");

Or listen to stream events:

// Note: In this specific case, we only have our own stream, so only `mystream_added` is triggered.
// In the case of listening for an external stream, use `stream_added` instead
session.on("mystream_added", (stream) => {
  // The audio stream and video stream added events will be triggered separately

  if (stream.kind === "video") {
    const consumer = session.createConsumer(stream);
    const stream = consumer.view();
    // Do something with stream ...
  }

  if (stream.kind === "audio") {
    const consumer = session.createConsumer(stream);
    const stream = consumer.view();
    // Do something with stream ...
  }
});

License

Released under MIT License.

0.0.1

10 months ago