Skip to content

lodev09/expo-recorder

Expo Recorder

Audio recorder for your React Native apps ๐ŸŽ™๏ธ
This is a wrapper component that implements Expo Audio and features an animated waveform for your recording needs. ๐Ÿ’ช

Expo Recorder

Note

This package is mostly subjective and might not fit your use case and/or design.

I will try to make this as generic as possible, but if you want a very customized experience, feel free to copy its code and customize it the way you want. Alternatively, you could submit a PR if you think it will help the general public. See the contributing guide to get started.

Installation

npx expo install @lodev09/expo-recorder

Dependencies

npx expo install expo-av react-native-reanimated react-native-gesture-handler

You might want to check out the individual installation instructions from this package's dependencies.

Usage

import { View, Button } from 'react-native'
import { Recorder, type RecorderRef } from '@lodev09/expo-recorder'

const App = () => {
  const recorder = useRef<RecorderRef>(null)

  const startRecording = async () => {
    const record = await recorder.current?.startRecording()
    console.log(record.uri)
  }

  const stopRecording = async () => {
    const record = await recorder.current?.stopRecording()
    console.log(record.uri) // Save the uri somewhere! ๐ŸŽ‰
  }

  return (
    <View>
      <Recorder ref={recorder} />
      <Button title="Record" onPress={startRecording} />
      <Button title="Stop" onPress={stopRecording} />
    </View>
  )
}

For complete usage, see example.

Also check out react-native-true-sheet, the Bottom Sheet used in this example.

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with โค๏ธ by @lodev09

About

Audio recorder for your React Native apps ๐ŸŽ™๏ธ

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published