首页 > 系统 > Android > 正文

android AudioRecorder简单心得分享

2019-10-24 20:43:02
字体:
来源:转载
供稿:网友
这篇文章介绍了android AudioRecorder简单心得,有需要的朋友可以参考一下
 
1.如何创建一个有效的AudioRecorder实例 
Android各种设备的采样频率不同,输入的声道数也不同,如果采用固定的采样频率和声道数,那么得到的AudioRecorder不一定能够正常初始化。
为了正常使用,需要尝试各种不同的参数,得到在此设备上可以用的AudioRecorder实例。代码如下:
复制代码代码如下:

private void createAudioRecord() {   
           for (int sampleRate : new int[]{44100, 8000, 11025, 16000, 22050, 32000,   
            47250, 48000}) {   
        for (short audioFormat : new short[]{   
                AudioFormat.ENCODING_PCM_16BIT,   
                AudioFormat.ENCODING_PCM_8BIT}) {   
            for (short channelConfig : new short[]{   
                    AudioFormat.CHANNEL_IN_MONO,   
                    AudioFormat.CHANNEL_IN_STEREO}) {   

                // Try to initialize   
                try {   
                    recBufSize = AudioRecord.getMinBufferSize(sampleRate,   
                            channelConfig, audioFormat);   

                    if (recBufSize < 0) {   
                        continue;   
                    }   

                    audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,   
                            sampleRate, channelConfig, audioFormat,   
                            recBufSize * 2);   

                    if (audioRecord.getState() == AudioRecord.STATE_INITIALIZED) {   

                        return;   
                    }   

                    audioRecord.release();   
                    audioRecord = null;   
                } catch (Exception e) {   
                    // Do nothing   
                }   
            }   
        }   
    }   

    throw new IllegalStateException(   
            "getInstance() failed : no suitable audio configurations on this device.");   
}

2.常见错误
1.有些设备上面,即使你得到了有效的AudioRecorder实例,在audioRecord.startRecording()的时候还会报ERROR_BAD_VALUE错误。
这有可能是你使用了AudioManager而没有释放导致的。
其他错误都可以在网络上找到答案。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表