如何在Android中录制语音和录制通话?

如果您知道如何录制语音,请在电话中logging来电者和来电者的声音。 如果有人知道,然后给我一个提示。

是的,这是可能的

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(); 

看一下这个…

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

简短的答案是…得到一个银河S,最好是韩国版本。

您无法在Android上录制电话会话。 这些stream处于较低级别的操作系统中,不能在应用程序级别访问。 抱歉。

据我所知,在Android上录制语音通话的所有应用程序都有同样的问题:只能在一些手机上工作,而在其他手机上只能听到对话的一面。 其中一些应用程序也尝试通过从麦克风录音来解决此问题。

如果您的Android手机拥有root权限,那么我相信有些应用程序可以更好地工作,因为他们可以访问较低级别的stream,正如Emmanuel在答案中指定的那样。

我不知道它是否可能,但只要API去

 recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 

这条线很好地在我的代码编译,其中logging器是MediaRecorder的对象,我曾经在这个项目上工作,但后来该项目被倾销,所以不知道它是否工作

该API显然是在那里 ,但制造商已经禁止他们的无线电固件能够做到这一点。

取决于电话到手机,例如,您不能在连接和摩托罗拉手机上录制通话,因为他们不允许从话筒进行录音直到通话正在进行。 但是在通话时,来自麦克风的相同录音在大多数三星和银河设备上都可以使用。

我害怕知道android没有一个本地api来logging语音通话。 即使这些stream在操作系统中被抽象出来,在Emmanuel hase所说的应用层中也是不可访问的。 我认为这是Android Devs的严重错误 。 如果一道安全墙有一个小洞,那么它就不再安全。 所以,即使droid限制或者试图限制,其他的手机也可以拥有这样的function。 即使是一个自定义的droid内核也可以具有这样的function。 这只会让机器人用户没有其他任何东西。