【问题标题】:Forceclose error due to recorder.setAudioSource(MediaRecorder.AudioSource.MIC);由于recorder.setAudioSource(MediaRecorder.AudioSource.MIC)导致的强制关闭错误;
【发布时间】:2011-03-06 14:53:52
【问题描述】:

我正在创建一个录音机应用程序,我在谷歌上搜索了一整天,我发现了一些可用于录制音频的代码。但是每次我运行代码时,我的应用程序都会遇到强制关闭错误并关闭。 我找到的代码如下

    MediaRecorder recorder = new MediaRecorder();

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); ***<== ERROR***
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile("/sdcard/sample.3gp");

    recorder.setOnErrorListener(errorListener);
    recorder.setOnInfoListener(infoListener);

    try {
        recorder.prepare();
        recorder.start();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } 

我使用的是 Android API 2.1

【问题讨论】:

标签: android


【解决方案1】:

你能找到的最好的例子在这里:http://developer.android.com/guide/topics/media/index.html#capture

我希望你在手机上测试过,因为:

请注意,模拟器没有硬件来捕获音频或视频,但实际的移动设备可能会提供这些功能,可通过 MediaRecorder 类访问。

看看这个:

/*
 * The application needs to have the permission to write to external storage
 * if the output file is written to the external storage, and also the
 * permission to record audio. These permissions must be set in the
 * application's AndroidManifest.xml file, with something like:
 *
 * <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 * <uses-permission android:name="android.permission.RECORD_AUDIO" />
 */

【讨论】:

  • 非常感谢,设置权限起到了作用……代码没有显示任何错误,但是我不知道我记录的文件存储在哪里,或者根本不知道它是否被记录。 ...任何想法“/sdcard/sample.3gp”会在哪里,还有一件事我是学生,所以我没有安卓手机我只能在模拟器上测试它...任何帮助将不胜感激...提前考虑...
  • 在手机上,您可以使用 File-Explorer 访问 sdcard(市场上有很多应用程序),目前我不知道这是如何在模拟器中模拟的。目前我认为没有手机就无法测试录音。
【解决方案2】:

在 Manifest 文件中提供权限:-

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

【讨论】:

    【解决方案3】:

    这对我有用

     mRecorder = new MediaRecorder();
     mRecorder.reset();
     mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    

    这是相同的question,我在那里写了相同的答案。

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多