prscX / react-native-voice-recorder

React Native: Native Audio Recorder View
Apache License 2.0
93 stars 14 forks source link
android ios react-native

PRs Welcome

ReactNative: Native Voice Recorder (Android/iOS) Due to time constraint, this library is deprecated and not maintained anymore, You can still use this library. If this project has helped you out, please support us with a star 🌟

This library is a React Native bridge around native voice recorder libraries. It allows you to record and play voice.

iOS

hackiftekhar/IQAudioRecorderController

Android

adrielcafe/AndroidAudioRecorder

📖 Getting started

$ yarn add react-native-voice-recorder

RN60 >= RNVR V1 >

RN60 above please use react-native-voice-recorder V1 and above

iOS Prerequisite: Please make sure CocoaPods is installed on your system

- Add the following to your `Podfile` -> `ios/Podfile` and run pod update:
  pod 'IQAudioRecorderController', :git => 'https://github.com/prscX/IQAudioRecorderController', :branch => 'wav'

  use_native_modules!

  pod 'RNVoiceRecorder', :path => '../node_modules/react-native-voice-recorder/ios'
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

RN60 < RNVR V1 <

RN60 below please use react-native-voice-recorder V.0.*

$ react-native link react-native-voice-recorder

buildscript {
    repositories {
        jcenter()
        maven { url "https://maven.google.com" }
        maven { url "https://jitpack.io" }
        ...
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven { url "https://maven.google.com" }
        maven { url "https://jitpack.io" }
        ...
    }
}
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

Note: Android SDK 27 > is supported

💻 Usage

import { RNVoiceRecorder } from 'react-native-voice-recorder';

RNVoiceRecorder.Record({
    onDone: (path) => {

    },
    onCancel: () => {

    }
})

RNVoiceRecorder.Play({
    path: '',
    onDone: (path) => {

    },
    onCancel: () => {

    }
})

💡 Props

Prop Type Default Note
path: mandatory string Specify media path to play
onDone func Specify done callback
onCancel func Specify cancel callback

✨ Credits

🤔 How to contribute

Have an idea? Found a bug? Please raise to ISSUES. Contributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.

💫 Where is this library used?

If you are using this library in one of your projects, add it in this list below. ✨

📜 License

This library is provided under the Apache 2 License.

RNVoiceRecorder @ prscX

💖 Support my projects

I open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it: