Is It Possible to Record Audio Through Android Emulator?
Asked Answered
D

3

5

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

Delly answered 7/5, 2013 at 6:51 Comment(0)
M
16

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.

Malayoindonesian answered 17/11, 2020 at 20:56 Comment(1)
I attempted this but it does not seem to workWarbeck
M
4

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

Midway answered 4/1, 2016 at 3:44 Comment(0)
A
2

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.

Aeropause answered 7/5, 2013 at 6:53 Comment(2)
yeah i'm using android-2.3.3.also same problem dearDelly
@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? thanksBidwell

© 2022 - 2024 — McMap. All rights reserved.