与MediaRecorder类设置音源的问题 - setAudioSource() - 不支持的参数
-
25-09-2019 - |
题
我在Android开发新的,我有一个问题/问题。
我玩弄的MediaRecorder类记录从麦克风音频刚。我按照官方网站指示的步骤操作:的http://开发商。 android.com/reference/android/media/MediaRecorder.html
所以,我有一种方法,其初始化和配置MediaRecorder对象以开始记录。在这里,你有代码:
this.mr = new MediaRecorder();
this.mr.setAudioSource(MediaRecorder.AudioSource.MIC);
this.mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
this.mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
this.mr.setOutputFile(this.path + this.fileName);
try {
this.mr.prepare();
} catch (IllegalStateException e) {
Log.d("Syso", e.toString());
e.printStackTrace();
} catch (IOException e) {
Log.d("Syso", e.toString());
e.printStackTrace();
}
当我在模拟器执行该代码,这要归功于logcat的,我可以看到,该方法setAudioSource(MediaRecorder.AudioSource.MIC)给出下一个错误(与标签audio_ipunt),当它被调用:
ERROR/audio_input(34): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
ERROR/audio_input(34): VerifyAndSetParameter failed
和然后当该方法制备()被调用时,得到再另一个错误:
ERROR/PVOMXEncNode(34): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle
如果我开始记录bycalling方法开始()...我得到很多消息说:
AudioFlinger(34):RecordThread: buffer overflow
然后...停,在释放之后,....我可以看到一个文件被创建,但它似乎并不认为它得到很好的recorderd。安韦,如果我尝试这在实际的设备,我可以没有任何问题记录,但我不能玩什么我只是记录下来。
我客串,关键是在这些错误,我之前提到过。我该如何解决这些问题?任何建议或帮助??
解决方案
在模拟器有许多与所述音频记录的问题。可以说,这是行不通的。最好的办法是尝试在真实设备代码!
其他提示
注意:Android模拟器不具有的能力,以采集音频, 但实际的设备有可能提供这些功能。
好了,我在这个机器人编程相当新的,但我给你们什么我到目前为止有关教训。在这里指出,他们有真实的设备,主要是GALAXY S的问题及仿真/虚拟设备不能正常工作或者几个问题的答案。嗯,我从谷歌阅读虚拟设备不支持录音现在。这可能是也可能不是仍然是准确的。然而,显著较有经验的程序员的Android告诉我说,没有理由相信,有远设备之间的相似之处硬件推移,由于Android是可在时下这么多的设备。此外,每个机器人OS非常稍微修改,以满足具体到每个设备,所以尽管Droid和在Droid X均可以运行Android Froyo的,升级Froyo的版本略有不同。所有这一切是说,也许是Galaxy S的有麦克风或一些稍微不同的调用方法。我的测试设备恰好是一个MotoDroid,所以我不能肯定这件事,抱歉。但我希望这有助于一点点!
编辑: 我的坏,仿真器不支持录音。