【问题标题】:How can I record voice and record Call in Android? [closed]如何在 Android 中录制语音和录制通话? [关闭]
【发布时间】:2011-05-10 19:25:52
【问题描述】:

如果你知道如何在android中记录呼出和呼入,请帮助我

【问题讨论】:

    标签: android phone-call voice-recording


    【解决方案1】:

    是的,可以这样做

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

    【讨论】:

    • 我在 2 台设备上遇到“setAudioSource failed”异常:Galaxy S3 和 Xperia Arc S。
    • 赞成MediaRecorder.AudioSource.VOICE_CALL 而不是MediaRecorder.AudioSource.VOICE_COMMUNICATION
    • 我收到此错误 MediaRecorder: start failed: -2147483648
    【解决方案2】:

    看看这个...

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

    简短的回答是……购买 Galaxy S,最好是韩国版。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 应用程序究竟对 root 做了什么?他们如何克服这个问题?
      【解决方案4】:

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

      recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
      

      这一行在我的代码中编译得很好,其中 recorder 是 MediaRecorder 的一个对象,我曾经从事过这样的项目,但后来该项目被转储了,所以不确定它是否有效

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 自动通话记录器等应用如何工作?即使没有根,它们也能工作。
        • 他们是怎么做到的?
        【解决方案6】:

        API 显然是 there,但制造商已禁用他们的无线电固件来执行此操作。

        【讨论】:

          【解决方案7】:

          取决于电话到电话 例如您无法在 nexus 和摩托罗拉手机上录制通话,因为它们不允许在通话进行之前从麦克风录制。但是,在通话时使用麦克风进行的相同录音适用于大多数三星和 Galaxy 设备。

          【讨论】:

            【解决方案8】:

            我害怕知道 android 没有原生 api 来记录语音通话。正如 Emmanuel hase 所说,即使流在操作系统中也是抽象的,并且在应用层中是不可访问的。我认为这是 Android 开发人员的严重错误。如果安全墙有一个小洞,它就不再安全了。因此,即使 droid 限制或尝试限制,也存在其他可以具有此类功能的手机。即使是定制的机器人内核也可以具有这种功能。这只会让 droid 用户变得更穷。

            【讨论】:

              猜你喜欢
              • 2013-03-24
              • 1970-01-01
              • 2011-08-23
              • 1970-01-01
              • 1970-01-01
              • 2012-01-06
              • 1970-01-01
              • 2018-01-17
              相关资源
              最近更新 更多