나는이 코드를 기록하여 통화를 기록합니다. 그것은 안드로이드 2.1에서 잘 작동합니다. Android 2.2에서는 0 바이트의 출력 파일을 만듭니다.안드로이드 2.2에서 레코드 호출
어떻게 해결할 수 있습니까?
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();
}
}
의
. 답장을 보내 주셔서 감사합니다. –
적어도 설명서에 따르면 VOICE_UPLINK의 상수 값은 2이고 VOICE_DOWNLINK의 상수 값은 3이므로 ORing이 3을 반환합니다 ... 아마도 작동하지만 나에게 DOWNLINK 만 기록하는 것처럼 보일 것입니다 ... –