punarinta / react-native-sound-level

A package to dynamically measure sound input level in React Native applications. Can be used to help user to adjust microphone sensitivity.
MIT License
79 stars 45 forks source link

Android Crash #22

Open darknessproduction opened 3 years ago

darknessproduction commented 3 years ago

Hey guys. We have a crash. Can you help us to fix this ?

Crash Samsung Galaxy Note8 Android 9 (SDK 28)

java.lang.IllegalStateException


java.lang.IllegalStateException: 
  at android.media.MediaRecorder._start (Native Method)
  at android.media.MediaRecorder.start (MediaRecorder.java:1348)
  at com.punarinta.RNSoundLevel.RNSoundLevelModule.start (RNSoundLevelModule.java:68)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.facebook.react.bridge.JavaMethodWrapper.invoke (JavaMethodWrapper.java:372)
  at com.facebook.react.bridge.JavaModuleWrapper.invoke (JavaModuleWrapper.java:151)
  at com.facebook.react.bridge.queue.NativeRunnable.run (Native Method)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage (MessageQueueThreadHandler.java:27)
  at android.os.Looper.loop (Looper.java:214)
  at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run (MessageQueueThreadImpl.java:226)
  at java.lang.Thread.run (Thread.java:764)
darknessproduction commented 3 years ago

@punarinta @Kammeh @yasithmilinda Guys please can you look at this?

darknessproduction commented 3 years ago

I think I fixed it: https://github.com/kevinresol/react-native-sound-recorder/pull/53/commits/d4b8b0e99b584f2ea6492aa6ef21364e45a73646

You can use my fork: https://github.com/darknessproduction/react-native-sound-recorder

Use this for android

SoundRecorder.start(SoundRecorder.PATH_CACHE + '/sound.mp4').then(function(){
    SoundRecorder.onNewFrame = (dataWave) => {
        console.log('data', dataWave)
    }
})
bezenson commented 2 years ago

@darknessproduction Hey, could you explain your fix, please?

darknessproduction commented 2 years ago

It's crashing on Android 9 sometimes. Here: at android.media.MediaRecorder.start (MediaRecorder.java:1348)

As I remember it happens because of this: react-native-sound-recorder/android/src/main/java/com/kevinresol/react_native_sound_recorder/RNSoundRecorderModule.java constants.put("SOURCE_MIC", MediaRecorder.AudioSource.MIC);

It has to be MediaRecorder.AudioSource.Default on some different phones to be working. So I used react-native-sound-recorder for android. Because it works very well in ios.

gavrilikhin-d commented 1 year ago

This is the same as #15