是否可以录制音频通过Android模拟器?(Is It Possible to Record Aud

2019-09-02 03:43发布

我工作的一个医疗项目和应用程序可以能够记录医生和病人之间的对话,并把它用于转录。

任务:基本程序是为录制和播放录制的音频。
问题:当以往任何时候都开始记录,它记录10-20秒logcat的节目后:

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

码:

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";
        }

我走过了Android文档及其明确提及MediaRecorder不会对emulator.Right工作,现在我没有Android手机进行测试。

也: 这里 这里 这里

Answer 1:

录制音频可能至少在标准2.3.3仿真器上的Windows 7; 我曾尝试它和它的作品。 但是,录制的音频没有在我的情况听起来有点怪(慢)。 我没有调查事故原因。

您需要录音+播放支持添加到该仿真器(Android SDK和AVD管理器- >虚拟设备- >编辑- >硬件- >新建)。 然后使用[MediaRecorder API] [1]来记录(MediaRecorder.AudioSource.MIC)。

代码如下:

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();

您还需要

<使用的许可机器人:名称= “android.permission.RECORD_AUDIO”/>

在AndroidManifest.xml中。

对我的作品,但声音失真。



Answer 2:

不,它是不可能使用模拟器进行录音。 你将不得不编写程序的逻辑,然后到实际部署的apk到您的手机,以测试其功能。

检查此链接为官方参考: http://developer.android.com/intl/es/guide/topics/media/audio-capture.html



文章来源: Is It Possible to Record Audio Through Android Emulator?