Audio recorder for your React Native apps ⏺️
npm install @lodev09/expo-recorderAudio recorder for your React Native apps 🎙️
This is a wrapper component that implements Expo Audio and features an animated waveform for your recording needs. 💪

> [!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.
``sh`
npx expo install @lodev09/expo-recorder
`sh`
npx expo install expo-audio react-native-reanimated react-native-gesture-handler
You might want to check out the individual installation instructions from this package's dependencies.
* expo-audio
* react-native-reanimated
* react-native-gesture-handler
`tsx
import { View, Button, Alert } from 'react-native'
import { Recorder, type RecorderRef } from '@lodev09/expo-recorder'
import { Audio } from "expo-av";
const App = () => {
const recorder = useRef
const startRecording = async () => {
try {
const permission = await Audio.requestPermissionsAsync();
if (permission.status !== "granted") {
Alert.alert(
"Permission required",
"Audio recording permission is required"
);
return;
}
const record = await recorder.current?.startRecording();
console.log(record?.uri);
} catch (error) {
console.error(error);
}
};
const stopRecording = async () => {
const record = await recorder.current?.stopRecording()
console.log(record.uri) // Save the uri somewhere! 🎉
}
return (
)
}
`
For complete usage, see example.
Also check out react-native-true-sheet`, the Bottom Sheet used in this example.
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
---
Made with ❤️ by @lodev09