@dytesdk/twilio-shim v0.0.3
Table of Contents
About The Project
This package @dytesdk/twilio-shim
is a wrapper over the Dyte SDK with a Twilio Video compatible external API. It is a drop-in replacement for Twilio Video.js, and supports most of the methods and events that are
present in the Twilio Video SDK.
Built With
Getting Started
You can install the @dytesdk/twilio-shim
from the NPM Registry using the npm install
command.
npm install @dytesdk/twilio-shim
Usage
The @dytesdk/twilio-shim
shares the same API as the Twilio Video SDK. You can use most of the methods that are supported by it. Here's a compatibility specification
that describes the methods from twilio-video
that are supported by this @dytesdk/twilio-shim
package.
Here are a few examples:
const { connect } = require('@dytesdk/twilio-shim');
const authToken = '<AUTH_TOKEN_FROM_DYTE_API>';
const room = await connect(authToken, {audio: false, video: true});
console.log(`Successfully joined a Room: ${room.name}`);
console.log(room);
room.on('participantConnected', participant => {
console.log(`A remote Participant connected: ${participant}`);
});
const { connect } = require('@dytesdk/twilio-shim');
const authToken = '<AUTH_TOKEN_FROM_DYTE_API>';
const room = await connect(authToken, {audio: false, video: false});
room.on('participantConnected', participant => {
console.log(`Participant "${participant.identity}" connected`);
participant.tracks.forEach(publication => {
if (publication.isSubscribed) {
const track = publication.track;
document.getElementById('remote-media-div').appendChild(track.attach());
}
});
participant.on('trackSubscribed', track => {
console.log('Subscribed to track', track);
const element = track.attach();
console.log(element);
document.getElementById('remote-media-div').appendChild(element);
});
});
const { connect } = require('@dytesdk/twilio-shim');
const authToken = '<AUTH_TOKEN_FROM_DYTE_API>';
const room = await connect(authToken, {audio: true, video: true});
room.localParticipant.audioTracks.forEach(publication => {
publication.track.disable();
});
room.localParticipant.videoTracks.forEach(publication => {
publication.track.disable();
});
// Enable audio and video tracks after 5 seconds
setTimeout(() => {
room.localParticipant.audioTracks.forEach(publication => {
publication.track.enable();
});
room.localParticipant.videoTracks.forEach(publication => {
publication.track.enable();
});
}, 5000);
About
twilio-shim
is created & maintained by Dyte, Inc. You can find us on Twitter - @dyte_io or write to us at dev [at] dyte.io
.
The names and logos for Dyte are trademarks of Dyte, Inc.
We love open source software! See our other projects and our products.