web-dev-qa-db-ja.com

Androidで音声を録音し、通話を録音するにはどうすればよいですか?

音声の録音方法を知っている場合や、通話中に発信者と着信者の両方の音声を録音する方法を教えてください。もし誰かが知っているなら、私にヒントをください。

37
PrashantAdesara

はい、これを行うだけで可能です

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();
10
Abhijit Chakra

これをチェックしてください...

http://androidforums.com/Android-lounge/181663-Android-phone-call-recording-function.html

短い答えは... Galaxy S、できれば韓国語版を入手してください。

8
user417181

私の知る限り、Androidで音声通話を録音するすべてのアプリケーションには同じ問題があります。一部の電話でしか動作しませんが、他の電話では会話の片側しか聞こえません。これらのアプリの中には、マイクから録音することでこの問題を解決しようとするものもあります。

Android電話でroot権限を持っている場合、Emmanuelが彼の答えで指定したように、低レベルのストリームにアクセスできるため、より適切に動作するアプリがあると思います。

6
gnobal

Androidで電話での会話を録音することはできません。ストリームは下位レベルのオペレーティングシステムにあり、アプリケーションレベルではアクセスできません。ごめんなさい。

5
Emmanuel

可能かどうかはわかりませんが、APIに関しては

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);

この行は、レコーダーがMediaRecorderのオブジェクトであり、かつてそのようなプロジェクトで作業していたコードでうまくコンパイルされますが、後でプロジェクトがダンプされたため、動作するかどうかはわかりません

5
ingsaurabh

APIは明らかに あり ですが、メーカーは無線ファームウェアがこれを実行できないようにしています。

2
john

電話から電話に依存します。ネクサスとモトローラの電話では、通話が始まるまでマイクからの録音が許可されないため、通話を録音できません。ただし、通話中のマイクからの同じ録音は、ほとんどのサムスンおよびギャラクシーデバイスで機能します。

2

Androidには音声通話を記録するためのネイティブapiがありません。ストリームはオペレーティングシステムで抽象化され、エマニュエルが述べているようにアプリケーション層でアクセスできません。深刻な間違い of Android Devs。セキュリティウォールに1つの小さな穴があり、セキュリティが確保されなくなった場合。ドロイドが制限または制限しようとしても、カスタムdroidカーネルでさえ、このような機能を持つことができますが、これは、droidユーザーを他の何も貧しくしません。

1
Neel Basu