我一直在尝试初始化Android的AudioRecord
,但遇到了问题。我在网上搜索了很长时间,但没有成功。
我的手机是三星GalaxyS,SDK版本为7。在初始化AudioRecord
时,我将采样率设为8000,声道设置为MONO,音频格式设置为16位,并且根据日志显示,最小缓冲区大小设置为4160。我在清单文件中添加了AUDIO_RECORD权限。
初始化代码如下:
...
private static int SAMPLE_RATE = 8000;
private static int CHANNEL_CONFIG = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
// ??? Both 8Bit and Default are deemed illegal.
public MicVolumeManager() {
this.bufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE,
CHANNEL_CONFIG, AUDIO_FORMAT);
PhoneDebugger.debug("AUDIO-BUFFER-SIZE",
Integer.toString(this.bufferSize));
this.recorder = new AudioRecord(AudioSource.MIC, SAMPLE_RATE,
CHANNEL_CONFIG, AUDIO_FORMAT, this.bufferSize);
this.audioBuffer = new byte[this.bufferSize];
}
...
然而,该对象(this.recorder)未能初始化。以下是使用DDMS记录的日志:
AUDIO-BUFFER-SIZE(3253): 4160
AudioRecord(3253): set(): sampleRate 8000, channels 16, frameCount 2080
AudioPolicyManager(2175): getInput() inputSource 1, samplingRate 8000, format 1, channels 10, acoustics 0
AudioFlinger(2175): openInput() openInputStream returned input 0x0, SamplingRate 8000, Format 1, Channels 10, acoustics 0, status -17
AudioRecord(3253): 无法为记录源1获取音频输入
AudioRecord-JNI(3253): 创建AudioRecord实例时出错:初始化检查失败。
AudioRecord-Java(3253): [android.media.AudioRecord] 在初始化本地AudioRecord对象时出现错误代码-20。
请问有什么帮助吗?非常感谢!