Запись звонка в Android 2.2 - PullRequest
8 голосов
/ 27 июля 2011

Я написал этот код для записи звонков. Работает нормально в Android 2.1. В Android 2.2 он создает выходной файл с 0 байтами.

Как мне это решить?

MediaRecorder _recorder = new MediaRecorder();


public void start() throws IOException {
    try {
        String state = android.os.Environment.getExternalStorageState();
        if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
            throw new IOException("SD Card is not mounted.  It is " + state
                    + ".");
        }

        // make sure the directory we plan to store the recording in exists
        File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()
                + "/sam.wav").getParentFile();
        if (!directory.exists() && !directory.mkdirs()) {
            throw new IOException("Path to file could not be created.");
        }


        _recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL );
        _recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
        _recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()
                + "/test.wav");
        _recorder.prepare();
        _recorder.start();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

Ответы [ 2 ]

6 голосов
/ 27 июля 2011

Используйте этот фрагмент

_recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK 
| MediaRecorder.AudioSource.VOICE_UPLINK );

вместо

_recorder.setAudioSource(android.media.MediaRecorder.AudioSource.VOICE_CALL);
2 голосов
/ 27 июля 2011

Запись звонков работает только на некоторых телефонах Android. Он может работать на одном телефоне под управлением 2.1, но не на другой модели под управлением 2.2. Хотя API будет компилироваться и запускаться на всех архитектурах, некоторые устройства отключили эту функцию в аппаратном обеспечении.

См. Как записать голос и записать звонок в Android? для получения более подробной информации.

...