diff --git a/Example/App1.js b/Example/App1.js index b6139e4..bad251c 100644 --- a/Example/App1.js +++ b/Example/App1.js @@ -37,7 +37,7 @@ export default class App extends Component { const p = await Permissions.check('microphone'); console.log('permission check', p); if (p === 'authorized') return; - this.requestPermission(); + return this.requestPermission(); }; requestPermission = async () => { diff --git a/Example/App2.js b/Example/App2.js index e4b70a6..513f583 100644 --- a/Example/App2.js +++ b/Example/App2.js @@ -36,7 +36,7 @@ export default class App extends Component { const p = await Permissions.check('microphone'); console.log('permission check', p); if (p === 'authorized') return; - this.requestPermission(); + return this.requestPermission(); }; requestPermission = async () => { diff --git a/Example/App3.js b/Example/App3.js index 437495b..adc3718 100644 --- a/Example/App3.js +++ b/Example/App3.js @@ -24,7 +24,7 @@ export default class App extends Component { const p = await Permissions.check('microphone'); console.log('permission check', p); if (p === 'authorized') return; - this.requestPermission(); + return this.requestPermission(); }; requestPermission = async () => { diff --git a/README.md b/README.md index cd10ffb..68ab543 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ const options = { sampleRate: 16000, // default 44100 channels: 1, // 1 or 2, default 1 bitsPerSample: 16, // 8 or 16, default 16 + audioSource: 6, // android only (see below) wavFile: 'test.wav' // default 'audio.wav' }; @@ -32,6 +33,8 @@ AudioRecord.on('data', data => { }); ``` +For `audioSource` use one of the constant values from [here](https://developer.android.com/reference/android/media/MediaRecorder.AudioSource). Default value is 6 (`VOICE_RECOGNITION`). + Use 3rd-party module like [buffer](https://www.npmjs.com/package/buffer) to decode base64 data. Example - ```js // yarn add buffer diff --git a/android/src/main/java/com/goodatlas/audiorecord/RNAudioRecordModule.java b/android/src/main/java/com/goodatlas/audiorecord/RNAudioRecordModule.java index 596a940..3fb6e09 100644 --- a/android/src/main/java/com/goodatlas/audiorecord/RNAudioRecordModule.java +++ b/android/src/main/java/com/goodatlas/audiorecord/RNAudioRecordModule.java @@ -26,6 +26,7 @@ public class RNAudioRecordModule extends ReactContextBaseJavaModule { private int sampleRateInHz; private int channelConfig; private int audioFormat; + private int audioSource; private AudioRecord recorder; private int bufferSize; @@ -66,6 +67,11 @@ public void init(ReadableMap options) { } } + audioSource = AudioSource.VOICE_RECOGNITION; + if (options.hasKey("audioSource")) { + audioSource = options.getInt("audioSource"); + } + String documentDirectoryPath = getReactApplicationContext().getFilesDir().getAbsolutePath(); outFile = documentDirectoryPath + "/" + "audio.wav"; tmpFile = documentDirectoryPath + "/" + "temp.pcm"; @@ -79,7 +85,7 @@ public void init(ReadableMap options) { bufferSize = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat); int recordingBufferSize = bufferSize * 3; - recorder = new AudioRecord(AudioSource.VOICE_RECOGNITION, sampleRateInHz, channelConfig, audioFormat, recordingBufferSize); + recorder = new AudioRecord(audioSource, sampleRateInHz, channelConfig, audioFormat, recordingBufferSize); } @ReactMethod diff --git a/package.json b/package.json index a49f57e..ca6eeaf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-audio-record", - "version": "0.1.3", + "version": "0.2.0", "description": "Audio record buffers for React Native", "author": "Vinay", "license": "MIT",