Video SDK facilitates Video Communications between EnableX Server and Client Endpoint Applications. Wide Range of SDKs available for developing Web Browser based Apps and Mobile Apps.

Table of Contents

Video SDK is used to develop Client End Video Applications. A Video SDK provides Functions that uses underline APIs over Web Sockets to communicate with EnableX Servers for effective RTC Session. It also propagates Events of different kind to each or designated end-points connected to the Session to update or notify status of actions or session.

Type of SDKs

EnableX provides different type of SDKs for development Video Application on different platform and application frameworks, viz:

  • Web SDK: A Lightweight JS Library for development of browser based Video Applications.
  • Native SDK:
    • Android SDK: SDK to develop Native Application on Android Devices.
    • iOS SDK: SDK to develop Native Application on iOS Devices.
  • Hybrid SDK:
    • React Native SDK: SDK to develop Hybrid Application on React Native Fraemwork.
    • Flutter SDK: SDK to develop Hybrid Application on Flutter Fraemwork.
    • Cordova SDK: SDK to develop Hybrid Application on Cordova Platform.

Get SDKs here.

Basic way of working

Being part of the Client End Application, SDK helps in connecting to Video Session, and subsequently it stays connected negotiating any network fluctuations. It handles Media transmission and reception to-fro EnableX Server to have a effective Session until disconnection from Session.

To achieve this, SDK provides the following:

Socket Connection

SDK helps the Client End Point to connect to EnableX Server through Web Sockets. All messaging, communication between Client and EnableX Services are channeled through the Web Socket. if Web Socket connection breaks, communication stops.

SDK also helps to get reconnected automatically to EnableX Sever to ensure session is restored.

Methods

To perform any action, Client End Application calls respective SDK Method. All these method call works asynchronously. The Action Request is sent out EnableX Server through the Web Socket. An immediate response is received to notify if the method is received for onward execution. L

Example: Web SDK / Start Recording – Moderator of a session starts recording of the session using the startReccord() method call.

// To start recording
room.startRecord( function( result, error ) {   // Method call & Callback
     if (result == 0) {
         // Recording started
     } 
});

Event Notifications

EnableX Server sends out notifications on various events through the Web Socket to one, designated or all Client End Point Applications connected to the Video Sessions. These notifications are generated as action/method call from your own end-point or generated as a result of some action originated by others from their end point.

Client End Application must listen to these events and take necessary action as needed by the Application.

Example: Web SDK / Recording Started – All Client End Points are notified that Video Session is being recorded.

// Notification recording started to all
room.addEventListener( "room-record-on", function(event) {
     // Recording started, Update UI
     // event.message.moderatorId = Moderator who stated recording.
}); 

Media Stream Handling

SDK handles Media Stream flow between Client End Point to EnableX Media Server. It helps in selecting right candidate to route media to EnableX Media Server. In case the primary UDP Ports are restricted in some Corporate Networks, it routes media through EnableX TURN Server over standard https port to ensure communication even if its not of optimum quality.

Important! EnableX uses UDP Port 20K to 60K for Media Streaming. To ensure optimum Video Communication, you need to ensure that thee Ports are not restricted in your Network.

SDK Entities

SDK handles following four major entities:

  • Room: It represents the client-side session and is used to handle all room/session related events. It handles the connection, local stream publication and remote stream subscriptions. It creates the room object by passing the token these users have previously received from your service. This token has to be retrieved using the Server API because it is a user access token.
  • Stream: It represents the user (audio, video and/or data) stream, identifies it, and where it should be drawn.
  • Events: It represents events related to client-side entities:
    • Room Events: It represents events related to room connection
    • Stream Events: It represents events related to streams within a room
  • Player: It represents the customisable UI element which can be used to render the stream in the DOM/View handler in the browser/Mobile SDK respectively.