0.0.2-alpha.3 • Published 1 day ago

@daily-co/daily-vcs-web v0.0.2-alpha.3

Weekly downloads
-
License
BSD-2-Clause
Repository
-
Last release
1 day ago

Daily VCS Web

The @daily-co/daily-vcs-web package enables developers to render a VCSComposition inside a given DOM element in the browser.

Installation

Install the package via npm or yarn:

npm install @daily-co/daily-vcs-web
# or
yarn add @daily-co/daily-vcs-web

Usage

Import the DailyVCSWebRender class from @daily-co/daily-vcs-web and create an instance to get started:

import DailyIframe from '@daily-co/daily-js';
import DailyVCSBaselineComposition from '@daily-co/vcs-composition-daily-baseline-web';
import DailyVCSWebRenderer from '@daily-co/daily-vcs-web';

const callObject = DailyIframe.createCallObject();
const rootEl = document.getElementById('vcs-wrapper'); // DOM element where the VCS composition will be rendered
const opts = {
  callObject: callObject,
  viewportSize: { w: 1280, h: 720 },
};

const renderer = new DailyVCSWebRenderer(
  callObject,
  DailyVCSBaselineComposition,
  rootEl,
  opts
);

Methods

The DailyVCSWebRenderer class provides the following methods:

  • start()

Starts the VCS composition and renders it to the specified DOM element.

renderer.start();
  • stop()

Stops the VCS composition and removes it from the DOM.

renderer.stop()
  • sendParam(paramId, value)

Sends a parameter update to the VCS composition.

renderer.sendParam('paramId', value);
  • sendParams(params)

Sends a map of parameter updates to the VCS composition.

renderer.sendParams({
  paramId1: value1,
  paramId2: value2,
  ...params
});
  • updateImageSources(images, mergeType)

Updates the image sources of the VCS composition.

renderer.updateImageSources(
  {
    imageId1: 'imageUrl1',
    imageId2: 'imageUrl2',
    // ...
  },
  'replace' // Optional: mergeType, either 'merge' or 'replace' (default is 'replace')
);
  • updateParticipantIds(participantIds, mergeType)

Updates the participantIds to render.

renderer.updateParticipantIds(
  ['participantId1', 'participantId2', ...],
  'replace' // Optional: mergeType, either 'merge' or 'replace' (default is 'replace')
);

Properties

The DailyVCSWebRenderer class also provides several read-only properties:

NameTypeDescription
rootElementDOMElementThe DOM element where the VCS composition is rendered
vcsApiInstanceVCSApiThe VCSApi instance returned by the VCSComposition. It can be used to send updates to the VCS composition.
compositionVCSCompositionThe VCS composition object.
participantsstring[]An array of participantIds to render.
paramsParam[]A map of paramId to value. It keeps track of the current state of the VCS composition.
size{ w: number, h: number }The render viewport size used by VCS.
imageSourcesRecord<string, string>A map of image assets. It keeps track of the current image sources

Callbacks

The DailyVCSWebRenderer class allows you to set optional callbacks that will be triggered during specific events. The available callbacks are:

  • onStart: Called when the VCS composition starts.
  • onStop: Called when the VCS composition stops.
  • onError: Called when an error occurs during the VCS composition.
  • onParamsChanged: Called when parameter values are updated.
const opts = {
  // ... other options ...
  callbacks: {
    onStart: () => console.log('VCS composition started.'),
    onStop: () => console.log('VCS composition stopped.'),
    onError: (e) => console.log('VCS composition error:', e),
    onParamsChanged: (params) => console.log('Params changed', params),
  }
}
0.0.2-alpha.2

1 day ago

0.0.2-alpha.3

1 day ago

0.0.1-alpha.10

8 months ago

0.0.1-alpha.9

9 months ago

0.0.1-alpha.8

9 months ago

0.0.1-alpha.7

9 months ago

0.0.1-alpha.6

9 months ago

0.0.1-alpha.5

9 months ago

0.0.1-alpha.4

9 months ago

0.0.1-alpha.3

9 months ago

0.0.1-alpha.2

10 months ago

0.0.1-alpha.1

10 months ago