我在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模拟器不具有的能力,以采集音频,   但实际的设备有可能提供这些功能。

价: http://developer.android.com/guide/主题/媒体/音频capture.html

好了,我在这个机器人编程相当新的,但我给你们什么我到目前为止有关教训。在这里指出,他们有真实的设备,主要是GALAXY S的问题及仿真/虚拟设备不能正常工作或者几个问题的答案。嗯,我从谷歌阅读虚拟设备不支持录音现在。这可能是也可能不是仍然是准确的。然而,显著较有经验的程序员的Android告诉我说,没有理由相信,有远设备之间的相似之处硬件推移,由于Android是可在时下这么多的设备。此外,每个机器人OS非常稍微修改,以满足具体到每个设备,所以尽管Droid和在Droid X均可以运行Android Froyo的,升级Froyo的版本略有不同。所有这一切是说,也许是Galaxy S的有麦克风或一些稍微不同的调用方法。我的测试设备恰好是一个MotoDroid,所以我不能肯定这件事,抱歉。但我希望这有助于一点点!

编辑: 我的坏,仿真器不支持录音。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top