当前位置: 首页 > 知识库问答 >
问题:

Android5.1中的语音通话录音

景嘉志
2023-03-14

我有一个应用程序whcih记录传入和传出语音呼叫,它在Marshmallow或更高版本的设备上运行良好versions.But当我尝试在android 5.1.1上运行它时,它给我错误,应用程序停止响应。

 The error shown in logcat is-ava.lang.RuntimeException: Unable to start service com.android.hitech.calls.Unused.MyRecordingService@2cb0b090 with Intent { cmp=com.android.hitech.calls/.Unused.MyRecordingService (has extras) }: java.lang.IllegalStateException
                                                    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2925)
                                                    at android.app.ActivityThread.access$2100(ActivityThread.java:151)
                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1408)
                                                    at android.os.Handler.dispatchMessage(Handler.java:102)
                                                    at android.os.Looper.loop(Looper.java:135)
                                                    at android.app.ActivityThread.main(ActivityThread.java:5268)
                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                    at java.lang.reflect.Method.invoke(Method.java:372)
                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
                                                 Caused by: java.lang.IllegalStateException
                                                    at android.media.MediaRecorder.start(Native Method)
                                                    at com.android.hitech.calls.Unused.MyRecordingService.onStartCommand(MyRecordingservice.java:88)
                                                    at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2908)

我用于录制语音通话的代码是 -

   recorder = new MediaRecorder();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        System.out.println("Present in MIC");
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    } else {
        recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALLS);

   }
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    recorder.setAudioEncodingBitRate(16);
    recorder.setAudioSamplingRate(44100);
    recorder.setOnErrorListener(this);
    recorder.setOnInfoListener(this);
    try {
        recorder.prepare();
        recorder.start();
    } catch (IOException e) {
        e.printStackTrace();
    }

编辑-我按照下面的回答做了,但是错误仍然存在。通过稍微调整代码,调用状态现在只被调用一次,但应用程序仍然崩溃,甚至异常也是一样的。

共有1个答案

诸龙野
2023-03-14

因为在android 5.1中android系统每次都会触发两次< code>CALL_STATE...!!即,一旦您的< code>NEW_OUTGOING_CALL启动,或者任何来电< code>STATE_RINGING 、< code>STATE_ONHOOK和< code>STATE_IDLE被触发两次..!!你必须通过代码来管理它。

你可以在这里找到参考5.1以上的问题…这是导致错误的原因

 类似资料:
  • 问题内容: 我想通知任何传入和传出语音呼叫的代码。我需要掌握以下所有内容: 如果是来电或去电 拨打的号码或来电显示的电话号码 通话时长,或者如果错过了通话 如果电话号码与电话的联系人列表中的某人匹配,如果我可以获得更多的联系信息,特别是联系人姓名,那也将是一件很圆滑的事。 通话结束后,我需要我的代码来获取这些信息。也许我只是没有在寻找正确的术语,但是我很难找到如何实现此目标的任何示例。 如果有人可

  • 我正在做一个项目来记录在android中的VOIP通话,我没有找到任何解决方案,有很多应用程序支持手机上的VOIP录音。我找不到任何教程和帮助。Cube Call Recorder是提供此功能的应用程序之一,但我不知道如何做到这一点。我通过使用android MediaRecorder开始录音进行了测试,然后启动了WhatsApp通话,所以其他人无法收听我的声音。通话后,我检查了只有我的声音保存在

  • 我在应用程序中内置了这个通话记录,问题是如果A打电话给B,A的声音响亮而清晰,但B的声音很低,但它与Android7完美配合 我在Android 9和10中测试了一些通话记录器应用程序,它有同样的问题,但我遇到了这个应用程序呼叫记录器 - Cube ACR,它也有问题,但是当我将记录设置为语音通话(软件)就像在图片中一样,更改此录音后非常清楚 这是项目使用的aykuttasil/CallRecor

  • 我在Android的通话记录应用程序中工作,以记录双方的语音,它在Android版本6之前工作良好,但在Android 7中不工作。Android 7的问题是远程语音未记录或可能听不到。 我用的是MediaRecorder。我尝试了所有的音频来源,但没有运气。如果有人知道如何在Android 7中实现这一点,请分享它或一些关于这方面的建议将非常有帮助。

  • 我创建了语音通话录音应用程序,它与手机的麦克风和听筒配合得很好。但是当插入耳机时,它不能录制音频。我试图将AudioSource更改为AudioSource.default,以为它会自动接受默认音频源。它什么也没记录。

  • 我正在开发一个使用MediaRecorderVOICE_CALL音频源的通话记录器应用程序,在一些Marshmallow设备中,它崩溃了,然后我将源更改为MIC,这里输入的语音没有被记录。由于这个java限制,现在我正在使用原生android代码来记录语音通话。我设法使用原生音频记录器来记录通话记录器的音频。问题是在原生代码中,它也只记录一侧语音,输入的语音没有被记录。然后我尝试了语音通信预设配置