MediaRecorder start failed: -38

11,264

Found the solution , it appears i had some other service in the background which is using AudioRecord and uses the mic as well.... so thats the -38 :)

Share:
11,264

Related videos on Youtube

Robocide
Author by

Robocide

Updated on August 11, 2020

Comments

  • Robocide
    Robocide almost 4 years

    i searched to check if this question is no dup , i see some has no answer and others did not help.

    this is my code :

    private void startRecording()
    {
                mRecorder = new MediaRecorder();
                mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    
                mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
                  mFileName += "/recordedHeckPost_.3gp";
    
                mRecorder.setOutputFile(mFileName);                  
    
                    try {
                        mRecorder.prepare();
                        //Thread.sleep(2000);
                        mRecorder.start();                  
            }
                    catch (InterruptedException e) 
                    {   // TODO Auto-generated catch block
                e.printStackTrace();
            }     
                catch(IllegalStateException e)
                {
                    e.printStackTrace();
                } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
    
    private void stopRecording()
    {
            mRecorder.stop();
            mRecorder.release();
            mRecorder = null;
    }
    

    After running this code (On Nexus 5) i get the below start failed -38 exception:

    05-31 18:17:39.404: E/MediaRecorder(2464): start failed: -38
    05-31 18:17:39.404: W/System.err(2464): java.lang.IllegalStateException
    05-31 18:17:39.404: W/System.err(2464):     at android.media.MediaRecorder.start(Native Method)
    

    Thanks.

  • Vinay Gaba
    Vinay Gaba over 9 years
    Which background service was this in particular?
  • Robocide
    Robocide over 9 years
    It was one of my my app services not OS
  • Vinay Gaba
    Vinay Gaba over 9 years
    Found it! From another app I tested whose icon I had hidden!Damn I would never never realized it without the answer about other service in background.Thanks!
  • SRam
    SRam over 7 years
    how can i find that other service running in background for recording or using mic?
  • Robocide
    Robocide about 7 years
    just check in your source code of your application for the strings "AudioRecord" or "MediaRecorder" .... or some other way to find if you have code that uses the mic....
  • hasan_shaikh
    hasan_shaikh about 6 years
    Did you find any solution to fix this without removing the background services?. I am using github.com/JorenSix/TarsosDSP to detect the pitch from the microphone when recording the video. So can you please help me out to fix this issue.