Watch Together SDK overview
Last updated
Last updated
Watch Together video-chat is a general-purpose video chatting infrastructure that is aimed to provide high-quality Audio and Video functionality that will allow you to create and provide engaging experiences in your application for your customers.
To register for our service please contact us at Support@sceenic.co.
If you already have credentials to the private area, login and retrieve your API_KEY and API_SECRET - Private area
( * ) SDKs are accessible only from the private area
Watch together video-chat application will allow you to create and manage interactive Audio and Video sessions for multiple participants and embed it in your web or mobile applications. We will provide you with SDKs for iOS, Android and Web to create and manage your experience.
Watch Together architecture is a client-server architecture whereby:
Clients - Web, iOS, or Android SDKs which will allow you to manage all the video chat logic (Web {JS
, React}, iOS {Swift, Obj-c-adpater} and Android {Kotlin, Java}
Server - which exposes authentication functionality and responsible for providing a valid token for the various clients (Authentication overview)
System flow:
You can expect the following functionality:
Session management functionality
Connecting and disconnecting from a Session
Managing Video and Audio streams
Enable/Disable video
Enable/Disable audio
Audio routing functionality -out of the box - managed by the SDK
Session management functionality
Connecting and disconnecting from a Session
Managing Video and Audio streams
Enable/Disable video Enable/Disable audio
Active speaker detection
Quality of Service monitoring
Resolution and bitrate control
Screen sharing Camera preview
Synchronization logic Reconnect functionality (will be deployed soon)
Big screen flow support (Android and AppleTV) Audio routing functionality
Authentication and client tokens
Archiving and server-side configuration (Coming soon)
When watching together we bring together a few participants that stream Video and Audio. The participants are bound together in a Session.
The Session is the place where participants meet and interact. A Session is a unique entity, it exists once created, and when all participants leave it is erased and cannot be reused.
Once a Session is created it is possible to connect and manage local and remote streams (Audio and video).
Every Session has a unique sessionId
to identify it which will allow various participants to join the specific Session.
Managing streams to provide a good user experience is always a complex task.
To do that we are providing you with the tools to manage many aspects of the Session functionality and life-cycle.
The first step in creating a Watch Together experience is setting your own Authentication Server. The Authentication Server should be hosted in your domain (Customer enclave) for several reasons:
To provide server-side access for configuration (The available functionality will increase with time)
Security - you will be responsible to integrate the token distribution to Web and Mobile clients and make sure it is done in a correct and secure way
Setting up the Authentication server requires you to login to your private area and retrieve your API_KEY and API_SECRET
Authentication flow:
Once Authentication is set up you can retrieve a valid token to allow Web and Mobile clients to use the system.
Acquiring a valid token:
getToken
When the token is acquired, you will be able to connect to a Session by either creating it or joining an existing Session.
connect
Join session" flow:
Managing the Watch Together experience will be done using the callbacks and methods below:
onError
onConnected
onDisconnected
onParticipantJoined
onParticipantLeft
enableAudio
enableVideo
disableVideo
disableAudio
Session- A one-time entity that binds together participants and allows management of participant behavior and experience
Participant - a local or remote user that streams either Video, Audio or both
Access token - a token that is made available for clients (Web, Mobile) so that they can authenticate against the service
Streams - Audio or Video that every participant in the Session can share - at the moment, this object is not exposed
Client SDKs - iOS, Android or Web SDKs which allows you to communicate with the Media Server Cluster (MSC) and create your custom experiences
Authentication server - A server, that is hosted in your domain (Customer enclave), whose purpose is to request valid token from the MSC and distribute it to clients
Tutorials
iOS Objective-c-adapter
Web (Rect/JS) tutorial
Need technical support? contact us at Support@sceenic.co.
Resources
SDKs
Web SDK *