尝试初始化 AudioRecord 时出现“无法获取记录源 1 的音频输入”

2024-05-06

当尝试初始化 AudioRecord 对象并尝试使用 Eclipse 使用模拟器录制声音时,我不断收到此错误。

我尝试过各种位采样率,8000 是唯一有效的,但错误仍然出现。我尝试过各种版本的sdk,1.5、1.6、2、2.2和2.3.1。 (以及与 AVD 的组合)。

这是代码:

       Log.v(TAG, "About to initialize recording");
   //int[] samplingRates = {44100, 22050, 16000, 11025, 8000};
   int[] samplingRates = {8000};

    for (int i = 0; i < samplingRates.length; ++i)
    {
        try
        {
            Log.d(TAG,"Trying sampling rate: " + samplingRates[i]);
            int min = AudioRecord.getMinBufferSize(samplingRates[i], 
                    AudioFormat.CHANNEL_CONFIGURATION_MONO,
                    //AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_PCM_16BIT);
            Log.d(TAG,"MinBufferSize: " + min);

            AudioRecord record = new AudioRecord(MediaRecorder.AudioSource.MIC, samplingRates[i],
                    AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, min);
            if (record.getState() == AudioRecord.STATE_INITIALIZED)
            {
                Log.d("Recorder", "Audio recorder initialised at " + record.getSampleRate());
                return record;
            }
            record.release();
            record = null;
        }
        catch (IllegalArgumentException e)
        {
            // Try the next one.
            Log.d(TAG,"Initialization failed");
        }
    }
    // None worked.
    return null;

错误发生在实例化、AudioRecord record = new 等时。

有没有人看到同样的问题,这似乎是一个直接的请求,所以如果这是一个错误,我很惊讶,特别是因为我无法让它与不同的版本一起工作。

我创建了具有音频录制功能的 AVD。我还需要配置什么吗?

我看过其他几个关于同一问题的帖子,但没有回复。

提前致谢

Chris


你这里的问题实际上可能是双重的。首先,您必须获得适合 AudioRecord 的所有参数,即,我可以看到您尝试了所有不同的采样率和通道配置,但是您尝试过不同的位深度吗?如果你没有把一切都搞清楚,那就行不通。此外,某些 Android 设备似乎报告了错误的 minBufferSize。

但是,我认为您遇到的实际问题是 AVD 无法录制音频/视频(即使如果您这样配置,它们可能不会抱怨):http://developer.android.com/guide/topics/media/index.html http://developer.android.com/guide/topics/media/index.html

从第三段开始:

请注意,模拟器没有捕获音频或视频的硬件,但实际的移动设备可能提供这些功能,可通过 MediaRecorder 类访问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试初始化 AudioRecord 时出现“无法获取记录源 1 的音频输入” 的相关文章

随机推荐