Android没有要求权限/录制无法正常工作

时间:2016-01-13 12:40:42

标签: android audio audiorecord

我正在开发一款可以收听手机麦克风的应用。在我可用的4个设备中,有2个可以正常工作,并且在安装过程中会要求允许录制音频。其他2人根本不问,也根本不工作。我初始化AudioRecord实例的代码在任何时候都不会返回任何错误消息。因此,我认为那两个不起作用的设备不会要求许可,也不会给出一个。

我的初始化代码:

protected void init() {
    bufferSize = AudioRecord.getMinBufferSize(INPUT_SAMPLE_RATE,
            AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);

    arraySize = bufferSize;
    try {
        input = new AudioRecord(MediaRecorder.AudioSource.MIC,
                INPUT_SAMPLE_RATE,
                AudioFormat.CHANNEL_IN_MONO,
                AudioFormat.ENCODING_PCM_16BIT,
                bufferSize * 10
        );
    } catch (IllegalArgumentException e) {
        Log.e("E_RECORDER", "Recorder.init() IllegalArgumentException");
    }

    input.setPositionNotificationPeriod(arraySize);

    input.setRecordPositionUpdateListener(new AudioRecord.OnRecordPositionUpdateListener() {
        @Override
        public void onMarkerReached(AudioRecord recorder) {
        }   

        @Override
        public void onPeriodicNotification(AudioRecord recorder) {
            int samplesRead = input.read(data, 0, arraySize);
            process(data);
        }
    });
    input.startRecording();
}

编辑:

实际上也有一些关于它的日志:

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

0 个答案:

没有答案