MediaRecorder не записывает звук в фоновом режиме - PullRequest
0 голосов
/ 22 марта 2019

Мы вызываем метод startRecord из Firebase JobService. Когда наше приложение находится на переднем плане, запись звука с микрофона проходит без проблем. Однако, если приложение находится в фоновом режиме (без активности переднего плана), MediaRecorder записывает тишину. Запись также происходит без проблем, если вы вызываете startRecord из службы переднего плана, однако наше приложение должно сделать скрытую запись. Вот метод startRecord:

void startRecord(int duration) {
    audioFile = Environment.getExternalStorageDirectory() + "/record.amr";

    try {
        File outFile = new File(audioFile);
        if (outFile.exists()) {
            outFile.delete();
        }

        mediaRecorder = new MediaRecorder();
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        mediaRecorder.setOutputFile(audioFile);
        mediaRecorder.prepare();
        mediaRecorder.start();

        //start timer for stop recording
        handler.postDelayed(StopRecordTask, duration * 1000);

        Log.d(LOG_TAG, "Audio record start");
    } catch (Exception e) {
        if (mediaRecorder != null) {
            mediaRecorder.release();
            mediaRecorder = null;
        }
        errorMessage();
        e.printStackTrace();
    }
}

Мы используем Android SDK версии 26. Скажите, пожалуйста, в чем причина проблемы?

...