1.1.0 • Published 1 year ago

audio-merger v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

AudioMerger

Overview

AudioMerger is a TypeScript class designed to merge multiple audio sources into a single media stream. It allows for the addition of audio sources from MediaStream and HTMLMediaElement objects, manages their volume, and provides methods to analyze the audio signal in real-time.

Features

  • Audio Source Management: Add, remove, and manage multiple audio sources.
  • Volume Control: Adjust the volume of individual audio sources.
  • Real-time Audio Volume Analysis in : Analyze the audio signal and retrieve volume levels in decibels.
  • Media Stream Output: Combine all audio sources into a single MediaStream that can be used elsewhere (e.g., for recording or streaming).
  • Audio Context Management: Efficiently manages the Web Audio API context, including handling browser-specific issues to ensure smooth audio processing.

Installation

npm install typescript --save-dev

Usage

Initialization

To create an instance of AudioMerger, simply instantiate the class:

import AudioMerger from './AudioMerger';

const audioMerger = new AudioMerger();

Adding Audio Sources

You can add an audio source from either a MediaStream or an HTMLMediaElement:

AudioMerger.addSource(id: string, source: MediaStream | HTMLMediaElement)

// Add a MediaStream source
audioMerger.addSource('Microphone(string id)', mediaStream);

// Add an HTMLMediaElement source
audioMerger.addSource('AudioElement (string id)', htmlMediaElement);

Removing Audio Sources

To remove an audio source by its ID:

audioMerger.removeSource(id);

Adjusting Volume

You can update the volume of a specific audio source (from 0 to 100):

audioMerger.updateVolume(mediaStream.id, 50); // Set volume to 50%

Getting Volume in Decibels

To get the current volume level in decibels for a specific audio source:

const volumeInDecibels = audioMerger.getVolumeInDecibels(mediaStream.id);
console.log(`Volume in dB: ${volumeInDecibels}`);

Get output stream

To get output stream of merged all sources you add:

audioMerger.getOutputStream();

Destroying the AudioMerger

When you are done using the AudioMerger, you should destroy it to clean up resources:

audioMerger.destroy();

This will remove all added sources, stop any active media tracks, and close the AudioContext.

1.1.0

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago