This Web Component follows the open-wc recommendation and is meant to be used with the OpenTok Video SDK.
A Vonage Video API account will be needed.
A goal is to simplify the code needed to create a chat room quickly. This Web Component will display the user's feed and publish to the session.
npm i @vonage/video-publisher
<script type="module">
import '@vonage/video-publisher/video-publisher.js';
</script>
<script type="module" src="https://unpkg.com/@vonage/video-publisher@latest/video-publisher.js?module"></script>
<video-publisher></video-publisher>
auto-publish
: (String) whether to auto publish video when connected to session. Default is "true". For example, you can set to false and use the component to set audio/video sources.properties
: (Object) the properties used to initialize the publisher. Find the full list in the documentation.
<video-publisher auto-publish="false"></video-publisher>
startPublish()
: start publishing to sessiontoggleAudio()
: start/stop publishing audiotoggleVideo()
: start/stop publishing videocycleVideo()
: switches the video input source
published
: event detail contains the publisher Objecterror
: event detail contains any error that happened.
- Get a reference to the Web Component.
- Generate a Session and Token.
- Pass Session and Token into Web Component reference.
Note: This can vary with library / framework (see examples folder)
To scan the project for linting and formatting errors, run
npm run lint
To automatically fix linting and formatting errors, run
npm run format
To execute a single test run:
npm run test
To run the tests in interactive watch mode run:
npm run test:watch
To run a local instance of Storybook for your component, run
npm run storybook
To build a production version of Storybook, run
npm run storybook:build
For most of the tools, the configuration is in the package.json
to minimize the amount of files in your project.
If you customize the configuration a lot, you can consider moving them to individual files.
npm start
To run a local development server that serves the basic demo located in demo/index.html