Android 媒体录制:java.lang.RuntimeException:启动失败

2023-11-25

我正在处理电话录音。当我开始录制电话时,不幸的是它停止了。它给出了错误MediaRecorder启动失败-2147483648。我参考这个答案link。但我不明白。请告诉我我的代码有什么问题?这是我的代码。

public class IncomingCall extends BroadcastReceiver {

Context pcontext;
private static MediaRecorder recorder;
private boolean recordedStart = false;

@SuppressWarnings("unchecked")
public void onReceive(Context context, Intent intent) {
    pcontext = context;
    recorder = new MediaRecorder();

try {
            TelephonyManager tmgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            MyPhoneStateListener PhoneListener = new MyPhoneStateListener();
            tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE);

    } catch (Exception e) {
        Log.e("Phone Receive Error", " " + e);
    }

}

private class MyPhoneStateListener extends PhoneStateListener {
    public void onCallStateChanged(int state, String incomingNumber) {



        switch (state) {
        case TelephonyManager.CALL_STATE_RINGING:
            Log.e("MyPhoneListener",state+"   incoming no:"+incomingNumber);
            Log.e("CALL_STATE_RINGING", "CALL_STATE_RINGING");

            break;

        case TelephonyManager.CALL_STATE_OFFHOOK:

            recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
            recorder.setOutputFile(Environment.getExternalStorageDirectory()+"/MyRecorder.mp3");
            Log.e("Path", ""+Environment.getExternalStorageDirectory()+"/MyRecorder.mp3");
            try {
                recorder.prepare();
                recorder.start();
                recordedStart = true;
                Log.e("Start", "Recorder Start");
            } catch (IllegalStateException | IOException e) {
                // TODO Auto-generated catch block
                Log.e("Error", ""+e);
            }

            break;
        case TelephonyManager.CALL_STATE_IDLE:
            Log.e("CALL_STATE_IDLE", "CALL_STATE_IDLE");
            if (recordedStart == true) {
                recorder.stop();
                recorder.release();
                recordedStart = false;
                Log.e("Stop", "Recorder Stop");
            }
            break;
        }
    }
}

}

Logcat错误

05-05 10:57:23.771: E/MediaRecorder(12812): start failed: -2147483648
05-05 10:57:23.771: D/AndroidRuntime(12812): Shutting down VM
05-05 10:57:23.771: W/dalvikvm(12812): threadid=1: thread exiting with uncaught exception (group=0x416bdd40)
05-05 10:57:23.774: E/AndroidRuntime(12812): FATAL EXCEPTION: main
05-05 10:57:23.774: E/AndroidRuntime(12812): Process: web.revolution.autocallanswer, PID: 12812
05-05 10:57:23.774: E/AndroidRuntime(12812): java.lang.RuntimeException: start failed.
05-05 10:57:23.774: E/AndroidRuntime(12812):    at android.media.MediaRecorder.start(Native Method)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at web.revolution.autocallanswer.IncomingCall$MyPhoneStateListener.onCallStateChanged(IncomingCall.java:98)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:389)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at android.os.Handler.dispatchMessage(Handler.java:102)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at android.os.Looper.loop(Looper.java:136)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at android.app.ActivityThread.main(ActivityThread.java:5102)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at java.lang.reflect.Method.invokeNative(Native Method)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at java.lang.reflect.Method.invoke(Method.java:515)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
05-05 10:57:23.774: E/AndroidRuntime(12812):    at dalvik.system.NativeStart.main(Native Method)
05-05 10:57:25.586: I/Process(12812): Sending signal. PID: 12812 SIG: 9
05-05 10:57:27.052: E/CALL_STATE_IDLE(13255): CALL_STATE_IDLE

此问题由该音频源引起

   recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);

无法在您的设备和 Android 上运行! 将其更改为

   recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

或其他来源。

您也可以通过更改 recorderstart() 来尝试/捕获 IllegalStateException,Exception 与此相同来删除 FC

        try {
        recorder.prepare();

    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        Log.d("ERROR ","IllegalStateException");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        Log.d("ERROR ","IOException");
        e.printStackTrace();
    } 
    try {
    recorder.start();
    } catch (Exception e) {

    }

我自己也遇到了这个问题,这对于通话录音非常有效,但是如果您也找到了此电话的解决方案,则接收器语音质量问题非常低。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 媒体录制:java.lang.RuntimeException:启动失败 的相关文章

  • Web Speech API 无法在 Android 版 Chrome 中正确加载语音

    我有一个简单的应用程序 应该读出以所选语言输入到输入字段中的文本 https speech synthesis demo glitch me https speech synthesis demo glitch me 这似乎在多个浏览器的桌
  • 如何在 Android 中获取像素颜色

    我正在使用 Intent 调用并显示图库中的图像 现在我可以使用以下命令在 TextView 中获取图像的坐标 final TextView textView TextView findViewById R id textView fina
  • Android - 如何创建可点击的列表视图?

    我想让列表视图中的所有列表项打开到一个新页面 因此每个列表视图项目都打开到一个我可以使用的新黑色页面 我根本不知道如何实现这个 我已经连续搜索了几个小时 但找不到解决方案的答案 如果有人能够展示和 或解释如何执行此操作而不是提供链接 我们将
  • 排除jar中的文件进入apk

    我最近添加了一些新的罐子到我的android项目 一些 jar 包含 version properties 其中之一甚至包含 README TXT 我如何告诉 eclipse adt ant 排除文件进入 apk 显然我可以解压 apk 删
  • 进入沉浸式全屏模式时状态栏为白色

    我根据以下内容做了一个关于沉浸式全屏模式的简单项目使用沉浸式全屏模式 https developer android com training system ui immersive html But first of all it per
  • Eclipse 运行时 Dalvik 错误

    当我要运行任何程序时 会显示此对话框 在 Eclipse 中 这些错误显示在控制台中 2013 02 25 19 05 09 Dex Loader Unable to execute dex Target out of range 0000
  • Android 中的计时器任务在无限期时间后停止运行

    我是安卓新手 我正在开发一个应用程序 其中一段特定的代码在后台每 5 秒后执行一次 为了实现这一目标 我使用带有定时器的服务 其中包含定时器任务 有时它工作正常 但经过一段时间后 我的服务正在运行 但计时器任务在 android 中自动停止
  • 尽管使用了 NTP 偏移量,设备仍会在几秒后启动指令

    背景 我有两台物理设备 一台 Galaxy S3 手机 和一台 Asus 700T 平板电脑 我想在同一时间执行同一组指令 因此 我使用的是 Android 的平台框架 基本 SNTP 客户端代码 https github com andr
  • Android 和 Facebook 共享意图

    我正在开发一个 Android 应用程序 并且有兴趣了解如何使用 Android 的共享意图在应用程序内更新应用程序用户的状态 浏览过 Facebook 的 SDK 后 这似乎很容易做到 但是我很想允许用户通过常规的共享意图弹出窗口来做到这
  • 制作教程(教练标记)叠加层。需要帮助根据另一个视图的位置移动视图

    你好 我正在尝试在教程上做一个教练标记 主程序 java public class Main extends Activity private Button button1 private int x Override public voi
  • 滑动抽屉上的按钮? - 安卓

    好吧 我已经在我正在构建的 Android 应用程序中的滑动抽屉上实现了一个按钮 唯一的问题是 当我按下按钮时 整个滑动抽屉都会被按下并向上滑动 我知道我可以在 XML 中禁用 按向上滑动 但这似乎不起作用 因为滑动抽屉仍然在没有向上滑动的
  • org.apache.http 软件包在 API 级别 23 中被删除。替代方案是什么?

    在更新到最新的 android API 级别 23 Marshmallow 后 通过 build gradle 添加以下更改后 所有 org apache http 类都不起作用 android compileSdkVersion 23 b
  • 具有 jsonObject 的 android 列表视图

    我正在开展一项活动 该活动请求服务器上的一个 php 文件 此 php 文件将返回给我一个JSONArray having JSONObjects作为它的元素 我明白了jArray并提取其内容 例如所有jsonObjects 每个 json
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate
  • ACTION_MEDIA_BUTTON 的广播接收器不起作用

    我正在为 Android 操作系统版本 4 0 3 ICS 编写 Android 应用程序 问题是我没有从 BroadcastReceiver 的 onReceive 方法中的 Log d 获得输出 这意味着我的应用程序没有正确处理广播 我
  • 如何使用 Android 手机通话时播放声音?

    是否可以通过编程方式与电话进行交互 例如 您可以通过程序向呼叫者播放音频吗 Google 尚未公开任何允许我们向特定正在进行的调用提供数据的 API 不过 您可以控制通话 检查这篇文章 here http prasanta paul blo
  • 在 Android 中创建硬链接和符号链接

    我正在创建一个应用程序 我想在其中使用 Android 外部内存文件系统中的硬链接和符号链接 我尝试过使用命令 Os link oldpath newpath Os link oldpath newpath 但是 当我尝试这样做时 我收到此
  • 找不到 com.android.tools.build:gradle:3.0.0 [重复]

    这个问题在这里已经有答案了 当我尝试从命令行构建可能的 Android 项目时 我收到以下错误消息 配置项目 mylib 时出现问题 无法解析配置 mylib classpath 的所有文件 找不到 com android tools bu
  • MediaRecorder 纵向模式下的视频捕获

    我正在尝试制作自定义视频应用程序 Iwork 使用清单中的设置仅 2 2 API 8 一切顺利 但我不明白为什么纵向模式视频与横向模式视频没有区别 为了检测设备改变的方向 我在 surfaceChanged 中使用此代码 if mCamer

随机推荐

  • 重用异步套接字:后续连接尝试失败

    我试图在异步 HTTP 客户端中重用套接字 但我无法第二次连接到主机 我基本上将异步 HTTP 客户端视为具有以下状态的状态机 可用 插座可供使用 正在连接 套接字正在连接到端点 发送 套接字正在向端点发送数据 正在接收 套接字正在从端点接
  • 为什么书上说“编译器在内存中为变量分配空间”?

    为什么书上说 编译器在内存中为变量分配空间 这不是可执行文件吗 我的意思是 例如 如果我编写以下程序 include
  • 无法循环打开 png 设备

    我一直在摆弄 R 中的一个函数 长话短说 我有一个for loop 在每一步 我使用保存一个图png 然后立即readPNG这样我就可以提取RGB信息 然后我制作第二个情节 然后readPNG这样我就可以比较两个图像的 RGB 问题是我不断
  • Snowflake (LEFT JOIN) LATERAL:无法评估不支持的子查询类型

    横向连接 在 FROM 子句中 LATERAL 关键字允许内联视图引用该内联视图之前的表表达式中的列 横向连接的行为更像是相关子查询 而不是大多数连接 让我们稍微调整一下文档中提供的代码 CREATE TABLE departments d
  • 导入错误:未找到 MagickWand 共享库 [windows]

    早上好 经过多次尝试运行 from wand image import Image 我收到以下错误 Traceback most recent call last File C Users XXXXX PycharmProjects PDF
  • Botframework:如何使用机器人处理长时间运行的任务?

    如何处理机器人上长时间运行的任务 以便客户端不会在 15 秒后再次尝试发送消息 我有一个带有 botframework v3 的机器人 并通过直线连接客户端 The 直达专线通道连接器本身不会重试发送消息 如果它在向您的机器人发送消息后 1
  • 获取 .NET 对象的内存地址 (C#)

    我试图追踪单声道运行时中的一个错误 其中一个变量似乎分配给一个有效对象 然后稍后重新分配给一个虚假对象 特别是 early in code I allocate fine var o new object valid allocation
  • 两个 ddev 项目之间的通信

    我有两个需要相互交互的 ddev 项目 当遇到一些问题时 我会检查连接的已解析 IP 我通过 ssh 进入 project1 并 ping project2 来完成此操作 ping project2 ddev local 域名解析为 127
  • Spring security oauth 2简单示例

    我尝试根据官方教程实现我自己的示例Sparklr2 Tonr2 一切看起来都不错 但是当我从web xml in my Tonr2实现 弹簧安全过滤器我有例外 尚未为当前请求建立重定向 URI 我不明白我应该使用什么 URL 这是我的代码
  • 凹边界半径可以吗?

    这是一个简单的凸示例 http jsfiddle net swY5k test width 200px height 200px background 888888 border radius 50px 但是 我想要一个凹形边界半径 我尝试
  • jQuery .each css 不是一个函数

    我有一个包含 3 个成员的 jQuery 对象 var elements this wrapperName gt ul gt li gt a gt img Object 0 img 1 img 2 img length 3 prevObje
  • 如何将正则表达式转换为字符串文字并再次转换回来?

    我怎么能够 将带有标志的 JavaScript RegExp 转换为字符串文字 想想 JSON 并将该文字转换回正则表达式 例如使用字符串 the weather is nice today var myRe new RegExp weat
  • Android 位置管理器标准

    我需要从网络和 GPS 提供商处接收位置更改 如果 GPS 提供商不可用或没有位置 基于卫星可见性 我将从网络提供商处接收位置 否则从 GPS 提供商处接收位置 是否可以根据我的需要使用标准选择提供商 实际上Android 开发者 让您的应
  • 通过 URL 运行自动化脚本

    马克西莫 7 6 1 1 我想通过调用单独系统中的 URL 来运行 Maximo 自动化脚本 是否有可能做到这一点 这是一个很好的用例 也是我们过去几天一直在努力解决的问题 创建自动化脚本 我的叫做automation api test 使
  • 如何使用Akka-HTTP客户端websocket发送消息

    我正在按照以下文档尝试客户端 WebsocketwebSocket客户端流 示例代码是 import akka actor ActorSystem import akka Done import akka http scaladsl Htt
  • Spring Boot 安全身份验证 - 302 重定向

    我正在尝试测试使用标准 Spring Security API 保护的 Web api 我通过实现 UserDetailService 实现了自己的用户身份验证服务 然而 每当我登录到我的应用程序时 login api 都会返回 302 重
  • Mp4 视频无法在 iPad 中播放

    美好的一天 我一直在致力于这个项目并学习如何在 iPad 和所有其他浏览器上放置视频 但在为此编写代码后 我注意到我从 iPad 获得的唯一信息是视频的第一个关键帧 但视频没有播放 当我按下 iPad 屏幕上出现的 播放 按钮时 视频不会播
  • 如何使用简单注入器、存储库和上下文 - 代码优先

    我正在尝试使用 Simple Injector 创建我的存储库并在业务逻辑层中使用它 我也想使用 PerWebRequest 方法 在 DAL 层我有 public interface IRepository
  • Laravel 5. 调试模式

    我将调试模式设置为true在 config gt app 中并将其部署到服务器上 debug gt env APP DEBUG true 我在控制器中有以下代码来检查模式 debug config app debug var dump de
  • Android 媒体录制:java.lang.RuntimeException:启动失败

    我正在处理电话录音 当我开始录制电话时 不幸的是它停止了 它给出了错误MediaRecorder启动失败 2147483648 我参考这个答案link 但我不明白 请告诉我我的代码有什么问题 这是我的代码 public class Inco