主题 : 关于tiny4412录音问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 80263
精华: 0
发帖: 15
金钱: 75 两
威望: 15 点
综合积分: 30 分
注册时间: 2012-10-22
最后登录: 2014-09-18
楼主  发表于: 2014-05-07 11:08

 关于tiny4412录音问题

android4.2.2系统
代码如下:
    private boolean initAudioOutput(int sampleRate) {
        int CHANNEL_CONFIG = AudioFormat.CHANNEL_IN_MONO;
        int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
        int bufferSize = AudioRecord.getMinBufferSize(sampleRate,
                CHANNEL_CONFIG, AUDIO_FORMAT);
        if (bufferSize > 0) {
            try {
                AudioRecord audioRecord = new AudioRecord(
                        MediaRecorder.AudioSource.MIC, sampleRate,
                        CHANNEL_CONFIG, AUDIO_FORMAT, bufferSize);
                return true;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return false;
    }

只有sampleRate=8000时能初始化成功,sampleRate=11025,16000,22050,44100时初始化失败,错误信息如下:

05-07 10:52:09.397: E/AudioRecord(7916): Could not get audio input for record source 1
05-07 10:52:09.397: E/AudioRecord-JNI(7916): Error creating AudioRecord instance: initialization check failed.
05-07 10:52:09.397: E/AudioRecord-Java(7916): [ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.

不知什么原因?电话咨询技术人员说最大支持44100的采样率,为什么我的不行呢?