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

时间:2010-11-16 12:56:37

标签: android phone-call voice-recording

如果您知道如何录制语音,请帮助我,并在通话期间录制来电者和来电者的语音。如果有人知道那么请给我一个提示。

8 个答案:

答案 0 :(得分:10)

是的,可以这样做

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

答案 1 :(得分:8)

检查出来......

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

简短的回答是......获得Galaxy S,最好是韩国版。

答案 2 :(得分:6)

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

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

答案 3 :(得分:5)

您无法在Android上录制电话对话。这些流位于较低级别的操作系统中,无法在应用程序级别访问。遗憾。

答案 4 :(得分:5)

我不知道它是否可能,但就API而言

recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);

这行在我的代码中很好地编译,其中recorder是MediaRecorder的对象,我曾经在做过这样的项目,但后来项目被抛弃,所以不确定它是否有效

答案 5 :(得分:2)

API显然是there,但制造商已禁止其无线电固件无法执行此操作。

答案 6 :(得分:2)

取决于手机到手机 例如你不能在nexus和motorola手机上录制一个电话,因为它们不允许从麦克风录音直到通话开始。但是在大多数三星和星系设备上,麦克风上的相同录​​音都可以使用。

答案 7 :(得分:1)

我害怕知道android没有原生api来录制语音通话。甚至流也是在操作系统中抽象出来的,并且在应用层中无法访问,正如Emmanuel所说。我认为它是Android Devs的严重错误。如果安全墙有一个小洞,它就不再安全了。因此,即使droid限制或试图限制,也存在其他可以具有这种功能的手机。即使是自定义机器人内核也可以拥有这种功能。这只会让机器人用户感觉不好。