Android:暂停录音并恢复

2024-03-05

我使用以下代码作为基础来创建记录器。我可以开始和停止录音,并且它会正确保存在该位置。但现在我有一个要求暂停录音机

如何暂停录音机?并恢复录音?我在我的三星 Galaxy Ace 中看到了一个录音应用程序,它有一个暂停按钮。

有人可以启发我吗?

public class audio {
     final MediaRecorder recorder = new MediaRecorder();
      final String path;

      /**
       * Creates a new audio recording at the given path (relative to root of SD card).
       */
      public audio(String path) {

        this.path = sanitizePath(path);
      }

      private String sanitizePath(String path) {
        if (!path.startsWith("/")) {
          path = "/" + path;
        }
        if (!path.contains(".")) {
          path += ".3gpp";
        }
        return Environment.getExternalStorageDirectory().getAbsolutePath() + path;
      }

      /**
       * Starts a new recording.
       */
      public void start() throws IOException {
        String state = android.os.Environment.getExternalStorageState();
        if(!state.equals(android.os.Environment.MEDIA_MOUNTED))  {
            throw new IOException("SD Card is not mounted.  It is " + state + ".");
        }

        // make sure the directory we plan to store the recording in exists
        File directory = new File(path).getParentFile();
        if (!directory.exists() && !directory.mkdirs()) {
          throw new IOException("Path to file could not be created.");
        }

       try {
           recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            recorder.setOutputFile(path);

            recorder.prepare();
            recorder.start();
    } catch (Exception e) {
        e.printStackTrace();
        // TODO: handle exception
    }
      }

      /**
       * Stops a recording that has been previously started.
       */
      public void stop() throws IOException {
        recorder.stop();
        recorder.reset();
        recorder.release(); 
      }

      public void pause() {

      }

    }

查看这两页

http://developer.android.com/guide/topics/media/index.html http://developer.android.com/guide/topics/media/index.htmlhttp://developer.android.com/reference/android/media/MediaRecorder.html

根据第一篇文章有​​一个暂停()

但我在第二个链接上没有看到暂停()方法,所以我不确定

第一篇文章引用的另一件事: “但是,当您调用 stop() 时,请注意,在再次准备 MediaPlayer 之前,您无法再次调用 start()。 在编写与 MediaPlayer 对象交互的代码时,请始终牢记状态图,因为从错误的状态调用其方法是导致错误的常见原因。”

所以也许你可以停止()准备媒体播放器然后再次启动()

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

Android:暂停录音并恢复 的相关文章

  • “此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。” -反应-原生

    当我尝试运行反应本机应用程序时 我遇到此错误react native run android 我无法安装该应用程序 我正在尝试构建一个相机应用程序 我当前的react native版本 0 62 0 React cli版本 2 0 1 De
  • Android平台源码中哪里可以找到版本信息

    Android 平台源文件中的版本信息在哪里找到 我尝试查找 设置 gt gt 中列出的有关手机的一些信息 显示的一些信息包括固件版本 模块编号 基带版本 内核版本 你可以给它办理登机手续platform build core versio
  • 在Android内存中存储gif图像

    我对安卓还很陌生 我想将图像保存到内存中 然后从内存中检索图像并将其加载到图像视图中 我已使用以下代码成功将图像存储在内存中 void saveImage String fileName img cnt jpg File file new
  • Notification.Builder 中 setGroup() 的用途是什么?

    我对目标的理解有些困难setGroup http developer android com reference android app Notification Builder html setGroup java lang String
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • Android:拍照后调用裁剪活动

    我在解析拍摄照片的 uri 来裁剪活动时遇到问题 在我的应用程序中 用户可以拍摄一张照片或从图库中选择一张照片 然后裁剪并上传 一切听起来都很简单 从图库中选择时 图库应用程序会返回所选照片的 uri 如下所示 content media
  • 无法找到/下载 AppCompat-v7:23.1.1

    怎么了 我遇到了很多 找不到 appcompat v7 23 1 1 的问题 许多解决方案都不起作用 经过几个小时的思考和寻找答案 我遇到了一个奇怪的问题 I have gotAndroid 支持库 23 1 1 已安装 所有功能 exce
  • 无法从 com.android.aaptcompiler.ParsedResource@ef79973 提取资源

    无法从 com android aaptcompiler ParsedResource ef79973 提取资源 无法从 com android aaptcompiler ParsedResource 4c95ce87 提取资源 C Use
  • 当编辑文本获得焦点时更改边框颜色

    我想知道当编辑文本聚焦时如何更改它的边框颜色 目前它看起来像这样 我尝试过在SDK中检查源图片 但我无法理解它 我也尝试过使用xml 但无法仅更改边框颜色 如果我找到源图片 我可以在 Photoshop 中编辑以更改颜色 有什么关于如何执行
  • Android 中带有透明背景的 ImageButton [重复]

    这个问题在这里已经有答案了 我已经按照这篇文章在android中制作ImageButton 安卓图像按钮 https stackoverflow com questions 2283444 android image button 图像出现
  • 如何在虚拟机 VirtualBox 上运行 Android-x86 4.2 iso?

    我想用Android x86测试和调试我的应用程序 我之前成功尝试过其他版本的Android x86 但是关于android x86 4 2有一个错误 所以我在这里问我的问题 因为它可能会发生在其他人身上 我安装了oracle VM vir
  • twitter4j => AndroidRuntime(446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken

    我正在尝试使用 twitter4j 我的应用程序来连接并发布到 Twitter 我正在关注本教程 http blog doityourselfandroid com 2011 02 13 guide to integrating twitt
  • 从 Handler.obtainMessage() 获取什么参数

    我正在使用线程来执行一些 BT 任务 我正在尝试向 UI 线程发送消息 以便我可以基于我的 BT 线程执行 UI 工作 为此 我使用处理程序 但我不知道如何检索发送到处理程序的数据 要发送数据 我使用 handler obtainMessa
  • popupBackground 与 Material Design 相关的问题

    我一直致力于将我的应用程序更新为 Material Design 我有一个使用选项卡的应用程序 由于某种原因 每当我使用 android popupBackground 设置下拉菜单颜色时 它就会崩溃 我设置了一个带有选项卡的默认项目并使用
  • 获取当前图片在图库中显示的位置

    在我的应用程序中 我有一个图片库 但我想检测当前显示图像的位置 例如 当我启动我的活动时 位置是 0 但是当我在图库中滚动时 我想获取当前显示图像的位置 我尝试过 OnFocusChanged OnItemClicked 但只有当我单击图库
  • 从多个 TextView 中选择文本

    如何在android中从多个文本视图中选择文本 我已经尝试过以下代码 该代码一次仅适用于一个文本视图 我想一次性从许多文本视图中复制文本 android textIsSelectable true 你不能同时这样做 您需要在单个文本视图中设
  • 在上下文操作模式下选择时,ListView 项目不会在视觉上“突出显示”

    我关注了 Android 官方网站创建上下文操作菜单的教程 http developer android com guide topics ui menus html CAB 使用下面的代码 当我长按我的 ListView 项目之一时 它确
  • firebase中按范围查询

    我有一个食品价格范围滑块 根据滑块的最小值和最大值 我想显示此范围内的食品 滑块代码 multiSlider setOnThumbValueChangeListener new MultiSlider SimpleChangeListene
  • 我可以通过在 Android Activity 中声明适当的成员“静态”来提高效率吗

    如果一个 Activity 在实践中是单例 我认为我可以通过声明适当的成员 静态 来获得一些效率 且风险为零 是的 The Android 文档说 http developer android com guide topics fundam
  • 进程被杀死后不会调用 onActivityResult

    我有一个主要活动 Main 和另一个活动 Sub 由 Main 调用 startActivityForResult new Intent this SubActivity class 25 当我在 Sub 时 我终止该进程 使用任务管理器或

随机推荐

  • 将自定义列产品可见性添加到 Woocommerce 3 中的管理产品列表

    我正在尝试使用产品的目录可见性值向管理产品列表添加自定义列 基本上 我需要更容易地知道哪些是隐藏的 哪些不是 到目前为止我的子主题的function php的代码 add filter manage edit product columns
  • 如何设置 GitHub.com 中的默认分支?

    我找到了以下信息 但没有找到哪里可以访问它 账户设置里没找到 有回购设置页面吗 您必须是回购所有者吗 https github com blog 421 pick your default branch https github com b
  • 承诺链内的返回值没有被调用

    我正在使用 Promise 库 Bluebird 目前遇到的问题是函数内的所有内容都运行良好 但是当我尝试返回值时 函数反而返回undefined 这是承诺链 function foo createGroupMembers parsedCh
  • 无法安装:错误 0x80070643:无法安装 MSI 包

    我正在尝试安装一个应用程序 msi 我使用 WiX 安装程序创建了一个 exe 它有依赖项 我尝试将其安装在某些电脑上 效果非常好 但在其中一个系统中 当它尝试安装 msi 时 它会给出错误并回滚安装 这是正常的 无法弄清楚为什么它没有安装
  • PHP - 服务器端变量将永远“存在”?

    我正在寻找一种简单的方法来在服务器内存中存储计数器以允许页面加载选择 有点 伪代码 if counter is odd then load page x else even counter load page y increment cou
  • 将用户定义的命令行参数添加到/?窗户

    使用 Inno Setup 可以添加用户定义的命令行参数 当我使用 HELP命令中未列出用户定义的参数 如何将带有描述的命令添加到 HELP window Inno Setup 6 0 支持HelpTextNote message http
  • Oracle CTE 合并

    我正在尝试使用 CTE 公用表表达式 的简单合并语句 但它给出了一个错误 MERGE INTO emp targ USING ERROR at line 4 ORA 00928 missing SELECT keyword 合并语句中不允许
  • 反距离加权插值

    我想计算一个重量作为距离的倒数 例如反距离加权插值 http en wikipedia org wiki Inverse distance weighting double wgt 0 wgt tmp result 0 for int i
  • 单一职责原则在 OOP 中有效吗?

    我正在努力理解如何将单一职责原则与 OOP 结合使用 如果我们要完全遵循这一原则 那么我们是否会留下许多类 其中许多类可能每个都只有一个方法 如果我们不严格遵循这个原则 那么这个原则还有什么意义呢 我喜欢这样陈述单一职责原则 你编写的每件事
  • x86 虚拟化如何工作

    任何人都可以推荐有关虚拟化的好读物吗 我建议英特尔软件开发人员手册 http www intel com products processor manuals 具体来说卷3B http www intel com Assets PDF ma
  • 没有名为“delta.tables”的模块

    我收到以下代码的错误 请帮忙 from delta tables import ModuleNotFoundError No module named delta tables INFO SparkContext Invoking stop
  • 启动 RPC 服务器时出现“端点重复”

    我的程序使用 Microsoft RPC 进行进程间通信 为了准备接收 RPC 调用 程序运行以下序列 RpcServerUseProtseqEp 然后 RpcServerRegisterIf 则 RpcServerListen 该程序按照
  • 如何理解这段由数字组成的 JavaScript 代码

    这是 JavaScript 代码 我认为它是十六进制形式并尝试对其进行解码 但仍然找不到该代码的含义 我在我的博客模板中使用此代码 我想了解这段javascript代码的真正含义
  • 再次:UnicodeEncodeError:ascii 编解码器无法编码

    我有一个我想要解析的 XML 文件的文件夹 我需要从这些文件的元素中获取文本 它们将被收集并打印到 CSV 文件中 其中的元素按列列出 I can实际上现在就这样做some我的文件 也就是说 对于我的许多 XML 文件 该过程进展顺利 并且
  • Page_ClientValidate 未定义 (ASP.NET MVC)

    我有一个 ASP NET MVC 表单 布局如下 using Html BeginForm null null FormMethod Post new id ccform Html ValidationSummary true Please
  • 从 bash 捕获 telnet 超时

    参考这个问题 使用 bash 脚本自动化 telnet 会话 https stackoverflow com questions 7013137 automating telnet session using bash scripts 我正
  • Terraform 无效的“each”属性

    我有一个 tfvars json 文件 我想用它来传递我的服务器配置 test test machines master01 node type master image ubuntu 20 04 server type cx21 loca
  • 验证 ECPoint 在给定 x y 坐标和曲线名称的 EllipticCurve 对象上是否有效

    给定公钥的 x 和 y 坐标以及曲线名称 我需要确定这些坐标是否代表曲线上的有效点 如果是 则测试通过 如果不是 则测试失败 到目前为止我的代码是 String curve String testGroupHeaders get curve
  • 快速从子控制器调用parentController方法

    我正在做一个简单的customtableview项目 我有viewController swift和customcell swift文件 我在viewcontroller文件中有一个方法 我如何从customcell文件调用该方法 任何帮助
  • Android:暂停录音并恢复

    我使用以下代码作为基础来创建记录器 我可以开始和停止录音 并且它会正确保存在该位置 但现在我有一个要求暂停录音机 如何暂停录音机 并恢复录音 我在我的三星 Galaxy Ace 中看到了一个录音应用程序 它有一个暂停按钮 有人可以启发我吗