为什么MediaRecorder的start()方法会抛出IllegalStateException?

2023-12-27

我正在尝试录制音频,但是start()的方法MediaRecorder类抛出一个IllegalStateException。 我使用以下代码:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/sdcard/");
try {
    recorder.prepare();
} catch (IllegalStateException e) {

// TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Log.i("Try","Exception");
recorder.start(); 

并遵循许可

<uses-permission android:name="android.permission.RECORD_AUDIO" />

recorder.setOutputFile("/sdcard/");正在设置目录,而不是文件。

将其替换为:

mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName += "/youraudiofile.3gp";

使用“/sdcard”硬编码路径是脆弱的,所以使用上面的。

另外,要使其工作,您必须添加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

到您的 AndroidManifest.xml

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

为什么MediaRecorder的start()方法会抛出IllegalStateException? 的相关文章

随机推荐

  • 需要 Java 中带有文件类型过滤器的 FileDialog

    我有一个带有按钮 文本字段的 JDialog 供用户选择文件 这是代码 FileDialog chooser new FileDialog this Save As FileDialog SAVE String startDir saveA
  • 计算十分位数的频率

    假设我有详细说明马拉松比赛的 SQL Server 表 所有这些表都是相似的 每行都是一个参与者 其中一列是结束时间 dbo marathon X finish 为了简单起见 我们假设 finish 以分钟 int 为单位计算 我陷入困境
  • iOS 9:如何检测用户何时对推送通知请求说“不允许”? [复制]

    这个问题在这里已经有答案了 在 iOS 9 中 是否有一个我可以读取的系统级回调 它告诉我用户是否在推送通知请求上点击了 不允许 我通过自定义屏幕提示用户 告知他们推送通知及其在我的应用程序中的价值 他们有两个选择 是或不是 如果他们选择
  • 无法导入美丽汤

    我正在尝试使用 BeautifulSoup 尽管使用了 import 语句 from bs4 import BeautifulSoup 我收到错误 ImportError cannot import name BeautifulSoup i
  • TreeMap 或 HashMap 更快[重复]

    这个问题在这里已经有答案了 我正在写一本字典 它大量使用 String 作为键Map
  • 如何“取消使用”命名空间?

    我的开发系统 Codegear C Builder 的变幻莫测之一是一些自动生成的标头坚持具有 using namespace xyzzy 其中的语句 当我最不想要或期望它时 它们会影响我的代码 有没有办法可以以某种方式取消 覆盖以前的 使
  • 使用Python进行逆过滤

    给定脉冲响应h和输出y 都是一维数组 我正在尝试找到一种计算逆滤波器的方法x这样h x y where 表示卷积积 例如 假设脉冲响应h is 1 0 5 输出是一个阶跃函数 即由所有1s 人们可以算出第一个系数应该是 1 0 5 0 75
  • 使用 LINQ to SQL 获取 Id

    保存到数据库后如何获取记录ID 我的意思实际上是这样的 我有 Document 类 它是来自数据库的实体 我创建了一个实例 例如 Document doc new Document title Math name Important dat
  • 修改序列化ASP.NET WebAPI对象中的xml数组元素名称

    在 WebAPI 控制器中返回对象列表时 我一直在努力输出自定义根 xml 元素 我的控制器方法看起来像这样 public List
  • 如何使用 MSBuild 脚本自动执行特定发布配置文件的 Web 部署?

    我有一个 Visual Studio 2012 解决方案 其中包含三个 Web 项目 它们每个都有一个 Web 部署发布配置文件 该配置文件在特定目录中创建一个包 该解决方案本身也有一个特殊的部署配置 使用 msbuild 在部署配置中构建
  • 当函数体中没有指定泛型类型参数时,如何访问它?

    假设我有 struct X T end 和一个函数调度X 我怎样才能访问T如果方法签名中未指定 则在函数体内 IE function foo x X can i get T in here end 这是 julialang slack 中的
  • Grails:重定向到不在任何控制器中的index.gsp

    在 Grails 中 如何重定向到不属于任何控制器的主页 index gsp 您可以像这样重定向到 redirect uri
  • 直接初始化无符号短整型的标准行为

    我今天注意到示例代码中 void print unsigned short a std cout lt lt a lt lt std endl 初始化和使用过程如下 print short 5 但不是这样的 print unsigned s
  • 如何匹配行/文本末尾的模式

    我对 bash 很陌生 所以 如果这是一个非常基本的问题 请原谅我 我正在尝试替换文件扩展名 gzip with gz E g testfile xml gzip gt testfile xml gz 有人编写了一个脚本来执行此操作 GZI
  • 如何使用 Route 属性将查询字符串与 Web API 绑定?

    我正在努力让它发挥作用 Route api Default public class DefaultController ApiController HttpGet Route name public string Get string n
  • Typescript 和子路径导入

    我正在尝试让 Node 子路径导入和打字稿正常工作 我的 IDE 在解析导入时没有问题 但 Typescript 从来不高兴 Github 存储库及其代码 https github com doronrosenberg ts subpath
  • log2(int) 和 log2(float) 的最快实现

    问题是 是否有任何其他 和 或更快 的基本 2log 实现 应用领域 log2 int 和 log2 float 操作在许多不同的上下文中非常有用 仅举几例 压缩算法 3D 引擎和机器学习 在几乎所有这些上下文中 它们都在被调用数十亿次的低
  • java try catch块的特殊语法

    Charset charset Charset forName US ASCII try BufferedReader reader Files newBufferedReader file charset String line null
  • RealityKit – 旋转实体会影响其比例

    我正在使用 USDZ 文件加载实体 我想在加载实体后 我想永远旋转 我正在使用以下代码 cancellable ModelEntity loadAsync named toy drummer sink weak self completio
  • 为什么MediaRecorder的start()方法会抛出IllegalStateException?

    我正在尝试录制音频 但是start 的方法MediaRecorder类抛出一个IllegalStateException 我使用以下代码 MediaRecorder recorder new MediaRecorder recorder s