Android 由recorder.setAudioSource(MediaRecorder.AudioSource.MIC)引起的强制关闭错误;

Android 由recorder.setAudioSource(MediaRecorder.AudioSource.MIC)引起的强制关闭错误;,android,Android,我正在创建一个录音应用程序,我在谷歌上搜索了一整天,发现了一些可以用来录音的代码。但每次我运行代码时,我的应用程序都会遇到强制关闭错误并关闭。 我找到的代码如下 MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); ***<== ERROR*** recorder.setOutputFormat(MediaRecor

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

    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();
    } 
MediaRecorder=新的MediaRecorder();

recorder.setAudioSource(MediaRecorder.AudioSource.MIC)*** 您可以找到的最佳示例如下:

我希望您能在手机上测试它,因为:

请注意,emulator没有捕获音频或视频的硬件,但实际的移动设备可能提供这些功能,可以通过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" />
 */
/*
*应用程序需要具有写入外部存储器的权限
*如果输出文件写入外部存储器,并且
*允许录制音频。必须在中设置这些权限
*应用程序的AndroidManifest.xml文件,包含以下内容:
*
* 
* 
*/
这对我很有效

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

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

在清单文件中提供权限:-

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


请在堆栈跟踪中发布错误。您可以在eclipse的LogCat视图中找到它,或者通过自己运行
adb LogCat
来找到它……很可能是Thnkyou的副本,设置权限就可以做到这一点。。。代码没有显示任何错误,但是我不知道我录制的文件存储在哪里,或者它是否正在录制中。。。。你知道“/sdcard/sample.3gp”会在哪里吗,还有一件事我是个学生,所以我没有安卓手机,我只能在模拟器上测试它。。。任何帮助都将不胜感激。。。thnks提前…在手机上,你可以通过文件浏览器访问SD卡(市场上有很多应用程序),目前我不知道如何在模拟器中模拟它。我认为目前没有电话无法测试录音。