无法录制电话 - 如何解决此问题?

时间:2017-04-30 23:20:57

标签: android

我知道某些设备/国家/地区禁用此选项来录制当前的电话。

但是在谷歌商店中有一个以上的应用程序可以启用电话录音(我知道因为我在设备上尝试了更多的应用程序并且工作正常) - 所以这可能是我的设备上的任务(galaxy s7 )。

但我仍然编写了所有执行录制操作的方法 - 但我仍然在录制时遇到异常,我不知道为什么以及如何解决它。

(*从任何其他AudioSource录制 - 工作正常)

许可:

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

代码:

public class TraceActionRecording
{

private static final String AUDIO_RECORDER_FILE_EXT_3GP = ".3gp";
private static final String AUDIO_RECORDER_FILE_EXT_MP4 = ".mp4";
private static final String AUDIO_RECORDER_FOLDER = "AudioRecorder";

private MediaRecorder recorder = null;


private String fileNameGenerator()
{
    // method that return unique file name ( and file path ) 
}

public void startRecording()
{

    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile(fileNameGenerator());

    try
    {
        recorder.prepare();
        recorder.start();
    }
    catch (IllegalStateException e)
    {
        e.printStackTrace();
    }
    catch (IOException e)
    {
        e.printStackTrace();      // get the exception here - exception about fail to recoding 
    }
}

public void stopRecording()
{
    if (null != recorder)
    {
        recorder.stop();
        recorder.reset();
        recorder.release();
        recorder = null;
    }
}

}

0 个答案:

没有答案