Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

decooda-media-recorder

Package Overview
Dependencies
Maintainers
3
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

decooda-media-recorder

Media recorder and player with visualizer bars

  • 1.2.21
  • latest
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

decooda-media-recorder

Description

The decooda-media-recorder or media visualizer is a js library for recording video (h.264) and audio (opus) in frontend applications. The base component has four main stages: initial, recording, playback, and submission. It also serves as a media player to either play only audio with visualizer bars or only video.

Demo

https://decooda-media-recorder.netlify.app/

NPM site with latest version

https://www.npmjs.com/package/decooda-media-recorder

Installation and run commands for local testing

Node version v14.8.0 and npm version 6.14.11 are used for development.

First run

npm install

to in install all packages. Finally run

npm start

to open a webpage of the decooda-media-recorder dashboard

Installation in app (React)

In root directory of app run:

npm install decooda-media-recorder

Usage (React)

Import the library

import MediaRecorder from 'decooda-media-recorder'

The media recorder (visualizer) accepts the following props:

NameTypeDefaultDescription
audioIDstringnullRequired if audioVisualizer is set to true; Also, for multiple renders of the audio visualizer, please provide a unique audioID
audioLinkDataobject {}audio link data to display; please follow the example below
audioOnlyboolfalseif true, audio recording only; also, only audio option in media upload
audioVisualizerboolfalseif true, no recording; only play audio with visualizer bars; MUST include audioLinkData
barsIDstringnullRequired if audioVisualizer is set to true; Also, for multiple renders of the audio visualizer, please provide a unique barsID
fileOnlyboolfalseif true, file upload only option in media upload
getRecordedBlobfuncfunction passed by host to library to retrieve the recorded blob
heightstring"auto"set height of media recorder
insertTitleboolfalseif true, will prompt user for title of media
recordingControlsbooltrueif true, it will display controls during video recording
showLinkBtnbooltrueif true, will show insert link button
showUploadBtnbooltrueif true, will show upload media button
videoOnlyboolfalseif true, video recording only; also only video option in media upload
widthstring"100%"set width of media recorder
To ONLY play audio with visualizer bars:

Set the audioVisualizer to true

<MediaRecorder
  ...
 audioVisualizer={true} 
  ...
/>

Supply the audio data; please follow this example:

const audioLinkData = 
{ 
  "name": "test", 
  "type": "ogg", 
  "date": "April 30, 2021 9:00AM", 
  "link": "https://actions.google.com/sounds/v1/ambiences/dmv_background_noise.ogg"
}

Supply a unique barsID

<MediaRecorder
  ...
  barsID="audio-bars"
  ...
/>
To do something with the recorded blob, pass a function:
//sends the recorded blob obj to the host to save, upload, etc:
const getRecordedBlob = (blob) => {
  console.log(blob)
  /*
  output:
  {
    //title if user prompted
    title: "test"
    time: date,
    //the raw recorded blob
    blobRaw: recordedBlob,
    //the blob url
    blobURL: url
    //the blob as a data url
    blobFile: file
  }
  */
  //do something with blob
}

Keywords

FAQs

Package last updated on 18 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc