【发布时间】:2011-06-25 03:42:21
【问题描述】:
我在尝试初始化 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。我还有什么需要配置的吗?
我在同一问题上看到了一些其他帖子,但没有回复。
提前致谢
克里斯
【问题讨论】:
-
是的,有可能...查看这篇文章stackoverflow.com/q/5254994/87918
标签: android