Cra*_*tor 14 android audio-recording android-sdk-2.1 android-audiorecord
我在初始化AudioRecordAndroid时遇到了这个问题.我在网上搜索了一段时间没有成功.
对于手机,我在SDK版本7上使用三星GalaxyS.对于AudioRecord初始化,我使用8000作为采样率,MONO用于通道配置,16位用于音频格式,并根据日志,minBufferSize设置是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返回输入0x0,SamplingRate 8000,格式1,通道10,声学0,状态-17
AudioRecord(3253):无法获取记录源1的音频输入
AudioRecord-JNI(3253):创建错误AudioRecord实例:初始化检查失败.
AudioRecord-Java(3253): [android.media.AudioRecord]初始化本机AudioRecord对象时的错误代码-20.
有什么帮助吗?非常感谢!
Liu*_*kys 16
对我来说,原因是没有为AudioRecord的前一个实例调用AudioRecord.release(); 它绑定了AudioFlinger中的本机资源,并干扰了后续的AudioRecord实例.在三星Fascinate(Galaxy S)Android 2.1(Eclair)上看到它; Eclair或三星的实施可能特别不容忍.
| 归档时间: | 
 | 
| 查看次数: | 19795 次 | 
| 最近记录: |