我正在开展一个医疗项目,该应用程序可以记录医生和患者之间的对话,并将其发送给转录。
作业:基本上应用程序用于录制和播放录制的音频 问题:当录制开始时,它会在LogCat显示后记录10-20秒:
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 Documentation,它清楚地提到MediaRecorder在模拟器上不起作用。现在我没有安卓手机进行测试。
答案 0 :(得分:2)
至少可以在Windows 7上的标准 2.3.3 模拟器中录制音频;我试过了它,它的工作原理。然而,在我的情况下,录制的音频听起来有点奇怪(慢)。我没有调查原因。
您需要为模拟器添加音频录制+播放支持(Android SDK和AVD管理器 - &gt;虚拟设备 - &gt;编辑 - &gt;硬件 - &gt;新增功能)。然后使用[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();
您还需要
&LT; uses-permission android:name =“android.permission.RECORD_AUDIO”/&gt;
在AndroidManifest.xml中。
适用于我,但音频失真。
答案 1 :(得分:2)
没有。无法使用模拟器录制声音。 您必须对程序的逻辑进行编码,然后将实际的apk部署到手机中,以便测试其功能。
将此链接视为官方参考:http://developer.android.com/intl/es/guide/topics/media/audio-capture.html
答案 2 :(得分:0)
是的,您可以,只需启用“虚拟麦克风使用主机音频输入”即可。 另外,该应用程序应征得许可,您应允许它使用音频。
Image of How to enable Android emulator audio
要确保问题不是您的应用,可以在模拟器中转到google chrome,然后使用此网络应用-> https://online-voice-recorder.com/来确保录音正常。