Is It Possible to Record Audio Through Android Emulator?

10,493

Solution 1

YES, you can, just enable "Virtual microphone uses host audio input". Also, the app should ask for permission, you should allow it to use your audio.

Image of How to enable Android emulator audio

To make sure that the problem is not your app, you can go to google chrome in the emulator and use this web app -> https://online-voice-recorder.com/ just to make sure that the audio recording is working.

Solution 2

No. It is not possible to use the emulator for recording sound. You will have to code the logic of your program and then to deploy the actual apk to your phone, in order to test its functionality.

check this link as an official reference: http://developer.android.com/intl/es/guide/topics/media/audio-capture.html

Solution 3

Recording audio is possible at least in the standard 2.3.3 emulator on Windows 7; I have tried it and it works. However, the recorded audio did sound a bit weird (slow) in my case. I did not investigate the cause.

You need to add audio recording + playback support to the emulator (Android SDK and AVD manager -> Virtual devices -> Edit -> Hardware -> New). Then use the [MediaRecorder API][1] to record (MediaRecorder.AudioSource.MIC).

Code is:

fMediaRecorder= new MediaRecorder();
fMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
fMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
fMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

fMediaRecorder.setAudioChannels(1);
fMediaRecorder.setAudioSamplingRate(8000);

fMediaRecorder.setOutputFile(fTmpFile.getAbsolutePath());

fMediaRecorder.prepare();

fMediaRecorder.start();

You also need

< uses-permission android:name="android.permission.RECORD_AUDIO"/>

in your AndroidManifest.xml.

Works for me, but Audio IS distorted.

Share:
10,493
Sam
Author by

Sam

Updated on October 19, 2022

Comments

  • Sam
    Sam over 1 year

    I am Working On a Medical Project and the app can able to record the conversation between doctor and patient and send it for Transcription.

    Assignment : Basically App is for Recording and Playing the recorded audio.
    Problem : When ever recording starts, it records 10-20 seconds after that LogCat Shows:

    05-07 11:42:52.502: W/MediaProfiles(6321): could not find media config xml file
    05-07 11:42:52.522: I/MPEG4Writer(6321): limits: 2147483647/0 bytes/us, bit rate: 12200 bps and the estimated moov size 3072 bytes
    05-07 11:42:52.532: E/AudioFlinger(6321): Error reading audio input
    05-07 11:42:58.432: W/AudioRecord(6321): obtainBuffer timed out (is the CPU pegged?) user=00000000, server=00000000
    05-07 11:42:58.432: E/AudioFlinger(6321): Error reading audio input
    05-07 11:43:03.403: W/AudioRecord(6321): obtainBuffer timed out (is the CPU pegged?) user=00000000, server=00000000
    05-07 11:43:03.403: E/AudioFlinger(6321): Error reading audio input
    05-07 11:43:03.403: A/AudioSource(6321): frameworks/base/media/libstagefright/AudioSource.cpp:327 timestampUs > mPrevSampleTimeUs
    05-07 11:43:03.612: I/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    05-07 11:43:03.612: I/DEBUG(31): Build fingerprint: 'generic/sdk/generic:2.3.3/GRI34/101070:eng/test-keys'
    05-07 11:43:03.612: I/DEBUG(31): pid: 6321, tid: 6442  >>> /system/bin/mediaserver <<<
    05-07 11:43:03.612: I/DEBUG(31): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
    05-07 11:43:03.622: I/DEBUG(31):  r0 deadbaad  r1 0000fef8  r2 00000027  r3 00000000
    05-07 11:43:03.632: I/DEBUG(31):  r4 00000080  r5 afd46668  r6 40806d78  r7 40806d7c
    05-07 11:43:03.632: I/DEBUG(31):  r8 a2f51fa1  r9 0000fd28  10 00100000  fp 00000001
    05-07 11:43:03.632: I/DEBUG(31):  ip ffffffff  sp 408068e0  lr afd19d8f  pc afd15ef0  cpsr 00000030
    05-07 11:43:03.922: I/DEBUG(31):          #00  pc 00015ef0  /system/lib/libc.so
    05-07 11:43:03.922: I/DEBUG(31):          #01  pc 00001440  /system/lib/liblog.so
    05-07 11:43:03.922: I/DEBUG(31): code around pc:
    05-07 11:43:03.932: I/DEBUG(31): afd15ed0 68241c23 d1fb2c00 68dae027 d0042a00 
    05-07 11:43:03.932: I/DEBUG(31): afd15ee0 20014d18 6028447d 48174790 24802227 
    05-07 11:43:03.932: I/DEBUG(31): afd15ef0 f7f57002 2106eb56 ec92f7f6 0563aa01 
    05-07 11:43:03.932: I/DEBUG(31): afd15f00 60932100 91016051 1c112006 e818f7f6 
    05-07 11:43:03.932: I/DEBUG(31): afd15f10 2200a905 f7f62002 f7f5e824 2106eb42 
    05-07 11:43:03.942: I/DEBUG(31): code around lr:
    05-07 11:43:03.942: I/DEBUG(31): afd19d6c 230ed505 21005ec0 f7f12202 89a2ebec 
    05-07 11:43:03.942: I/DEBUG(31): afd19d7c 1c294804 81a04010 5ea0220e f7f11c32 
    05-07 11:43:03.942: I/DEBUG(31): afd19d8c bd70eb72 ffffefff 1c04b510 5ec0230e 
    05-07 11:43:03.942: I/DEBUG(31): afd19d9c eb58f7f1 db032800 180b6d21 e0036523 
    05-07 11:43:03.952: I/DEBUG(31): afd19dac 4b0289a2 81a34013 46c0bd10 ffffefff 
    05-07 11:43:03.952: I/DEBUG(31): stack:
    05-07 11:43:03.952: I/DEBUG(31):     408068a0  00000008  
    05-07 11:43:03.952: I/DEBUG(31):     408068a4  afd18407  /system/lib/libc.so
    05-07 11:43:03.952: I/DEBUG(31):     408068a8  afd42604  /system/lib/libc.so
    05-07 11:43:03.952: I/DEBUG(31):     408068ac  afd46784  
    05-07 11:43:03.952: I/DEBUG(31):     408068b0  00000000  
    05-07 11:43:03.952: I/DEBUG(31):     408068b4  afd19375  /system/lib/libc.so
    05-07 11:43:03.952: I/DEBUG(31):     408068b8  00000009  
    05-07 11:43:03.963: I/DEBUG(31):     408068bc  afd183d9  /system/lib/libc.so
    05-07 11:43:03.963: I/DEBUG(31):     408068c0  afa01199  /system/lib/liblog.so
    05-07 11:43:03.963: I/DEBUG(31):     408068c4  00000000  
    05-07 11:43:03.963: I/DEBUG(31):     408068c8  afd46668  
    05-07 11:43:03.963: I/DEBUG(31):     408068cc  40806d78  
    05-07 11:43:03.963: I/DEBUG(31):     408068d0  40806d7c  
    05-07 11:43:03.963: I/DEBUG(31):     408068d4  afd18677  /system/lib/libc.so
    05-07 11:43:03.963: I/DEBUG(31):     408068d8  df002777  
    05-07 11:43:03.963: I/DEBUG(31):     408068dc  e3a070ad  
    05-07 11:43:03.963: I/DEBUG(31): #00 408068e0  408068dc  
    05-07 11:43:03.963: I/DEBUG(31):     408068e4  00000001  
    05-07 11:43:03.972: I/DEBUG(31):     408068e8  a303abbe  /system/lib/libstagefright.so
    05-07 11:43:03.972: I/DEBUG(31):     408068ec  0000000c  
    05-07 11:43:03.972: I/DEBUG(31):     408068f0  40806914  
    05-07 11:43:03.972: I/DEBUG(31):     408068f4  fffffbdf  
    05-07 11:43:03.972: I/DEBUG(31):     408068f8  00000001  
    05-07 11:43:03.972: I/DEBUG(31):     408068fc  40806914  
    05-07 11:43:03.972: I/DEBUG(31):     40806900  a303abbe  /system/lib/libstagefright.so
    05-07 11:43:03.972: I/DEBUG(31):     40806904  afa01443  /system/lib/liblog.so
    05-07 11:43:03.983: I/DEBUG(31): #01 40806908  40806914  
    05-07 11:43:03.983: I/DEBUG(31):     4080690c  afa01443  /system/lib/liblog.so
    05-07 11:43:03.983: I/DEBUG(31):     40806910  40806d2c  
    05-07 11:43:03.983: I/DEBUG(31):     40806914  6d617266  
    05-07 11:43:03.983: I/DEBUG(31):     40806918  726f7765  
    05-07 11:43:03.983: I/DEBUG(31):     4080691c  622f736b  
    05-07 11:43:03.983: I/DEBUG(31):     40806920  2f657361  
    05-07 11:43:03.983: I/DEBUG(31):     40806924  6964656d  
    05-07 11:43:03.983: I/DEBUG(31):     40806928  696c2f61  
    05-07 11:43:03.983: I/DEBUG(31):     4080692c  61747362  
    05-07 11:43:03.983: I/DEBUG(31):     40806930  72666567  
    05-07 11:43:03.983: I/DEBUG(31):     40806934  74686769  
    05-07 11:43:03.992: I/DEBUG(31):     40806938  6475412f  
    05-07 11:43:03.992: I/DEBUG(31):     4080693c  6f536f69  
    05-07 11:43:03.992: I/DEBUG(31):     40806940  65637275  
    05-07 11:43:03.992: I/DEBUG(31):     40806944  7070632e  
    05-07 11:43:03.992: I/DEBUG(31):     40806948  3732333a  
    05-07 11:43:03.992: I/DEBUG(31):     4080694c  6d697420  
    05-07 11:43:05.342: I/BootReceiver(61): Copying /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
    05-07 11:43:05.372: W/IMediaDeathNotifier(386): media server died
    05-07 11:43:05.372: I/ServiceManager(28): service 'media.audio_flinger' died
    05-07 11:43:05.372: I/ServiceManager(28): service 'media.audio_policy' died
    05-07 11:43:05.372: I/ServiceManager(28): service 'media.player' died
    05-07 11:43:05.372: I/ServiceManager(28): service 'media.camera' died
    05-07 11:43:05.382: W/AudioSystem(61): AudioFlinger server died!
    05-07 11:43:05.382: W/AudioSystem(61): AudioPolicyService server died!
    05-07 11:43:05.632: D/dalvikvm(61): GC_CONCURRENT freed 1046K, 47% free 4504K/8391K, external 3520K/3903K, paused 8ms+19ms
    05-07 11:43:06.072: I/(6479): ServiceManager: 0xad50
    05-07 11:43:06.072: D/AudioHardwareInterface(6479): setMode(NORMAL)
    05-07 11:43:06.072: I/CameraService(6479): CameraService started (pid=6479)
    05-07 11:43:06.082: I/AudioFlinger(6479): AudioFlinger's thread 0xc658 ready to run
    05-07 11:43:06.908: E/AudioService(61): Media server died.
    05-07 11:43:06.912: E/AudioService(61): Media server started.
    05-07 11:43:06.922: D/AudioHardwareInterface(6479): setMode(NORMAL)
    05-07 11:43:06.922: W/AudioPolicyManagerBase(6479): setPhoneState() setting same state 0
    

    Code:

    protected String doInBackground(MediaRecorder... params) {
                mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
                mFileName += "/_audioDirectory/" time +"/"+f_Name+ ".mp3";
                mRecorder = new MediaRecorder();
                mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
                mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
                mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
                mRecorder.setOutputFile(mFileName);
    
                try {
                    mRecorder.prepare();
                } catch (Exception e) {
                    Log.e(LOG_TAG, e.toString());
                }
                mRecorder.start();
                Log.i("recording starts", "now");
                return "success";
            }
    

    I gone through Android Documentation and its clearly mention MediaRecorder does not work on the emulator.Right Now i dont have android phone to test.

    also : Here Here Here

  • Sam
    Sam about 11 years
    yeah i'm using android-2.3.3.also same problem dear
  • secr
    secr almost 4 years
    @Nirav That sounds promising. However, I am on windows 7 64bit thinkpad, have tried following your instructions but in tools, AVD manager, virtual device -there is nothing that like "New" you mention. There is "verify configuration" where you can change the system, gfx, ram, and other specs, but not audio settings. Uses permission in manifest file - this is clear, and so is the code, going to dart file, I believe. Can you clarify the missing part please? thanks
  • Cleaton Pais
    Cleaton Pais over 2 years
    I attempted this but it does not seem to work