0.0.7 β€’ Published 7 months ago

use-audio-capture v0.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

use-audio-capture

A React hook for audio recording using the Web APIs. It provides functionality for starting, stopping, pausing, and resuming recordings, with customizable callback events.

Features

  • 🧠 Intuitive API
  • 🎣 Customizable Callbacks: Easily react to various recording events such as starting, stopping, pausing, and data chunk availability.
  • 🚫 Error Handling: Built-in error events to handle and manage recording issues.
  • ⏸️ Pause and Resume: Not just start and stop! Pause your recordings and resume right where you left off.
  • πŸŽ™οΈ Data Chunk Access: Access raw audio data chunks as the recording progresses, allowing for advanced use-cases.
  • πŸ•ŠοΈ No External Dependencies: Built with native Web APIs, ensuring a lightweight package with no extra dependencies.

Installation

npm install use-audio-capture

Getting Started

Basic usage - See live example

import { useAudioCapture } from 'use-audio-capture';

export const AudioRecorder: React.FC<AudioRecorderProps> = () => {
  const { start, stop, pause, resume } = useAudioCapture({
    onStart: () => {
      console.log('Recording started.');
    },
    onStop: (_e, chunks) => {
      const blob = new Blob(chunks, { type: chunks[0].type });
      const file = new File([blob], 'sampleFile.webm', {
        type: chunks[0].type,
      });
      console.log(file);
    },
  });

  return (
    <div>
      <button onClick={start}>Start Recording</button>
      <button onClick={stop}>Stop Recording</button>
      <button onClick={pause}>Pause Recording</button>
      <button onClick={resume}>Resume Recording</button>
    </div>
  );
};

Link to storybook

Functions returned by useAudioCapture

Function NameDescriptionParametersReturns
startStarts the audio recording.Nonevoid
stopStops the audio recording.Nonevoid
pausePauses the current recording session.Nonevoid
resumeResumes a paused recording session.Nonevoid

Available Callbacks and Their Properties

CallbackDescriptionProperties Received
onStartCalled when recording starts.event, { mediaStream }
onChunkCalled when a data chunk is available.blobEvent, { mediaStream }
onStopCalled when recording stops.event, chunks, { mediaStream }
onPauseCalled when recording is paused.event, chunks, { mediaStream }
onResumeCalled when recording is resumed after pausing.event, chunks, { mediaStream }
onErrorCalled when an error occurs during recording.event, { mediaStream, error }

AudioRecorder component

Component example built based on use-audio-capture hook - See live example

License

MIT

0.0.7

7 months ago

0.0.6

7 months ago

0.0.5

7 months ago

0.0.4

7 months ago

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago