5

我在 OS X 上运行 Android Emulator 并尝试使用 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);
 ...
4

2 回答 2

3

来自 android 开发网站:“该平台还允许您在移动设备硬件支持的情况下录制音频和视频。要录制音频或视频,请使用 MediaRecorder 类。请注意,模拟器没有捕获音频或视频的硬件,但实际的移动设备可能会提供这些功能,可通过 MediaRecorder 类访问。”

编辑:实际上可以通过模拟器录制音频。看到这个问题:Android 模拟器可以使用电脑硬件录制和播放音频吗?

于 2010-12-13T02:30:44.947 回答
2

在 OS X 上,我发现以 44100 的采样率录制音频在 Android 模拟器中不起作用,但 16000 的采样率确实有效。

于 2014-01-15T23:56:32.460 回答