2.0.5 • Published 4 years ago

voicerecorder v2.0.5

Weekly downloads
17
License
MIT
Repository
github
Last release
4 years ago

voicerecorder

A react component for audio recording

NPM JavaScript Style Guide

Install

npm install --save voicerecorder

Usage

import React from 'react'

import { useVoiceRecorder } from 'voicerecorder';


const Button = () => {
  const { start, pause, stop } = useVoiceRecorder();

  return (
    <div>
      <button onClick={start}>start</button>
      <button onClick={stop}>stop</button>
      <button onClick={pause}>pause</button>
    </div>
  )
}

export default Button

----------------------------------------------------------------

import React, { useState } from 'react'

import { VoiceRecorder } from 'voicerecorder'
import Button from './Button'

const App = () => {
  const [stream, setStream] = useState(null)
  const [audio, setAudio] = useState(
    'http://alexkatz.me/codepen/music/interlude.mp3'
  )
  const constraints = {
    echoCancellation: true,
    noiseSuppression: true,
    sampleRate: 44100
  }
  const options = {
    audioBitsPerSecond: 128000
  }

  const setUpStream = async () => {
    navigator.getUserMedia =
      navigator.getUserMedia ||
      navigator.mozGetUserMedia ||
      navigator.msGetUserMedia ||
      navigator.webkitGetUserMedia
    navigator.permissions
      .query({ name: 'microphone' })
      .then(async (permissionObj) => {
        if (permissionObj.state === 'denied') {
          alert('Microphone access Blocked enable it to continue');
        }
        else {
          if (navigator.getUserMedia && window.MediaRecorder) {
            const stream = await navigator.mediaDevices.getUserMedia({
              audio: constraints
            })
            if (stream) {
              setStream(stream)
            } else {
              setStream(null)
            }
          } else {
            window.alert('Audio recording APIs not supported by this browser')
          }
        }
      })

  }

  return (
    <div>
      {stream ? (
        <VoiceRecorder
          options={options}
          audioUpload={(blob) => {
            setAudio(URL.createObjectURL(blob))
          }}
          stream={stream}
        >
          <Button />
        </VoiceRecorder>
      ) : (
        <button onClick={setUpStream}>setStream</button>
      )}

      <audio src={audio} controls='controls' />
    </div>
  )
}

export default App

License

MIT © https://github.com/ZaeemAhmed542/

2.0.3

4 years ago

2.0.2

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.1

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago