安卓模拟器可以捕获音频吗?

5
我正在OS X上运行Android模拟器,尝试使用AudioRecord来采集音频样本,并使用FFT jar(用于调音应用程序)确定频率。但我在使用手机进行调试时遇到了困难(http://stackoverflow.com/questions/4425127/android-galaxy-s-phone-adb-debug-bridge-trouble-on-mac-osx),所以我想使用模拟器。
当我从模拟器中采集音频样本时,它似乎包含随机值。我认为它正在录制某些东西,但我不确定是否来自我的计算机麦克风。有人能确认这些值可能来自哪里,并且是否可以使用模拟器进行录制吗?
我像这样初始化AudioRecord对象:
 int frequency = 8000;
 int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
 int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;

 try {
        // Create a new AudioRecord object to record the audio.
        int bufferSize = AudioRecord.getMinBufferSize(frequency,channelConfiguration,audioEncoding);

        AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 
                                                  frequency, channelConfiguration, 
                                                  audioEncoding, bufferSize);
 ...
2个回答

3
从Android开发网站上可以得知:"平台还允许您在移动设备硬件支持的情况下录制音频和视频。要录制音频或视频,请使用MediaRecorder类。请注意,模拟器没有捕获音频或视频的硬件,但实际的移动设备很可能提供这些功能,并通过MediaRecorder类进行访问。"
编辑:实际上可能可以通过模拟器录制音频。请参见此问题:Can the Android emulator record and play back audio using pc hardware?

谢谢。我发现了,但是我想知道它捕捉到了什么?随机噪音吗? - chaimp
1
它可能会为您生成随机值。 - Pure Function
1
你可以在模拟器中运行代码时捕获音频。请查看此链接:https://dev59.com/K2435IYBdhLWcg3wuign - suDocker

2
在OS X上,我发现在Android模拟器中使用44100的采样率进行音频录制无法正常工作,但16000的采样率可以正常工作。

1
哇,我简直不敢相信我三年前问过这个问题。感谢你的回答。对于任何试图做到这一点的人来说,这实际上是一个好消息。 - chaimp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接