1

我尝试使用 MediaRecorder 录制音频:

MediaRecorder recorder= new MediaRecorder();
recorder.reset();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.setMaxDuration(30*60*1000);
recorder.prepare();
recorder.start();

代码工作正常,运行时没有异常发生,有时如果文件将创建,则文件未在 SDCard 上创建,则文件大小为 0KB。

我还在 return what=802 和 extra=6 中注册了 Error 和 Info 侦听OnInfoListener OnErrorListenerOnInfoListener public void onInfo(MediaRecorder mr, int what, int extra)我已经在真实设备上尝试过此代码但不起作用。

4

3 回答 3

0

你可以试试这个:

                mRecorder = new MediaRecorder();
                mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                mRecorder.setOutputFile(mFileName);
                mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

                try {
                    mRecorder.prepare();
                } catch (IOException e) {
                    Log.e("start", "prepare() failed");
                }

                mRecorder.start();

如果您收到任何错误,请粘贴 logcat。

于 2013-02-20T04:49:47.827 回答
0

试试这对我有用:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();
于 2013-02-20T04:36:45.847 回答
0

这是 MediaRecorder 捕获媒体的绝佳参考。 http://developer.android.com/guide/topics/media/audio-capture.html

本教程中使用的示例代码无需任何更改即可工作。(只需确保您在清单文件中添加了必要的权限)

于 2014-05-19T09:33:38.847 回答