2012-02-07 18 views
5

アンドロイドでは、モバイルのスピーカーを開かずに着信/発信通話中に音声通話を録音することができます。私はアンドロイド市場でアプリケーションを見た。録音目的でマイクを使用しているため、スピーカーを開かずに他の側の音声を正しく録音しません。それは他のテクニックでも行えますか?アンドロイドで着信中や発信中に電話を録音することは可能ですか

final MediaRecorder callrecorder = new MediaRecorder(); 

callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
callrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
callrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
callrecorder.setOutputFile(recordPath); 
callrecorder.prepare(); 
callrecorder.start(); 
+2

それは記録することが可能であるが、いくつかの国では、それは違法ですが、ずっと前に私たちは、ブラックベリーのAppを行っているが、それは何らかのプライバシー法の違反に禁止されました。 – Yuvi

+0

はい、可能です。[こちら](http://stackoverflow.com/questions/6839297/record-call-in-android-2-2)リンクを確認してください。録音用のサンプルコードもあります。 – Lucifer

+0

携帯のスピーカーを開けなくても可能ですか? – shyam

答えて

2

あなたは(私の知る限りでは)

recorder = new MediaRecorder(); 
int audioSource = MediaRecorder.AudioSource.VOICE_CALL; 
recorder.setAudioSource(audioSource); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
final String filePath = Environment.getExternalStorageDirectory() + "/record.3gpp"; 
final File file = new File(filePath); 
file.getParentFile().mkdirs(); 
recorder.setOutputFile(filePath); 
recorder.prepare(); 
recorder.start(); // Recording is now started 
+0

携帯のスピーカーを開けなくても可能ですか? – shyam

+0

デバイスにはどのような制限がありますか? – shyam

0

Android携帯電話は、アプリケーションプロセッサとモデムプロセッサを持って、次のようにMediaRecorderクラスを使用する必要があります。電話機が音声通話中の場合、オーディオデータは、モデムプロセッサからオーディオハードウェアに直接ルーティングされます(ハードウェアの変更がない限り)。アプリケーションプロセッサは、音声データを幸福に認識していませんが、通話状態のみを知っています。

これで、適切なハードウェアサポートなしで音声データを録音することはできません。 MICのオーディオソースの設定

+0

アンドロイドが必要とするハードウェアサポートの種類はすべてのバージョンにありません。アンドロイドバージョンにも制限がありますか? – shyam

+0

これはAndroidのバージョンとは関係ありません。 HWサポートは、モデムプロセッサからアプリケーションプロセッサに引き出されるPCMラインを意味します。 – santosh

0

は私のために働いた。..

CallRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 

しかし、すべてのデバイスは、通話録音のためのハードウェアサポートを提供しています。この[link]:http://forum.xda-developers.com/showthread.php?t=926498を参照してください。

一部の電話機では、発信者と着信者の両方の声が録音されたのに対し、他の電話機ではスピーカーの声のみが録音されていました。

0

オーディオソースMediaRecorder.AudioSource.VOICE_DOWNLINK & MediaRecorder.AudioSource.VOICE_UPLINKの両方で確認できます。

この解決策は私のために働いた。

Callrecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK | MediaRecorder.AudioSource.VOICE_UPLINK); 
関連する問題