android 어떻게 음성을 녹음하고 안드로이드에서 통화를 녹음 할 수 있습니까?




phone-call voice-recording (7)

음성을 녹음하는 방법을 알고 있다면 전화를하는 동안 발신자와 발신자 모두의 음성을 녹음 할 수 있도록 도와주십시오. 아무도 모른다면 나에게 힌트를주세요.


Answer #1

Android에서 전화 대화를 녹음 할 수 없습니다. 스트림은 하위 수준 운영 체제에 있으며 응용 프로그램 수준에서 액세스 할 수 없습니다. 죄송합니다.


Answer #2

나는 안드로이드가 음성 통화를 녹음하기위한 원시 api를 가지고 있지 않다는 것을 두려워한다. Emmanuel hase가 언급 한 것처럼 스트림도 운영 체제에서 추상화되고 응용 프로그램 계층에서 액세스 할 수 없습니다. Android Devs의 심각한 오류 라고 생각합니다. 보안 벽에 작은 구멍이 하나 있으면 더 이상 안전하지 않습니다. 따라서 드로이드가 제한하거나 제한하려고해도 이러한 종류의 기능을 가질 수있는 다른 전화기가 있습니다. 커스텀 드로이드 커널조차도 그런 종류의 기능을 가질 수 있습니다. 이것은 단지 droid 사용자가 다른 아무것도 가난하게 만듭니다.


Answer #3

API는 분명히 there 하지만 제작자는 무선 펌웨어를 비활성화 할 수 없도록 설정했습니다.


Answer #4

전화에 따라 다름 예 : 넥서스 및 모토로라 휴대 전화는 통화가 진행될 때까지 마이크에서 녹음을 허용하지 않으므로 녹음 할 수 없습니다. 하지만 대부분의 삼성 및 은하 장치에서 작동하는 동안 마이크에서 동일한 녹음이 이루어집니다.


Answer #5

가능한 한 멀리 있지만 API까지가는 지 모르겠다.

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);

이 라인은 레코더가 MediaRecorder의 Object이고 내가이 프로젝트에 대해 한 번 작업하고 있었지만 이후에 프로젝트가 덤프 되었기 때문에 작동하는지 아닌지에 대한 코드에서 잘 컴파일됩니다



Answer #7

예 가능합니다.

final MediaRecorder callrecorder = new MediaRecorder();
callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
callrecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

callrecorder.setOutputFile(filepath);

try {
    callrecorder.prepare();
} catch (IllegalStateException e) {
    System.out.println("An IllegalStateException has occured in prepare!");
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {

    //throwing I/O Exception
    System.out.println("An IOException has occured in prepare!");
    // TODO Auto-generated catch block
    e.printStackTrace();
}

try {
    callrecorder.start();
} catch(IllegalStateException e) {
    e.printStackTrace();
    //Here it is thorowing illegal State exception
    System.out.println("An IllegalStateException has occured in start!");
}

당신이 멈출 수 있기 때문에 사용할 수 있습니다.

callrecoder.stop();




voice-recording