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 になることがあります。

OnInfoListener OnErrorListenerまた、 returns what=802 および extra=6 でError および Info リスナーを登録OnInfoListener public void onInfo(MediaRecorder mr, int what, int extra)しました。実際のデバイスでこのコードを試しましたが、機能しません。

4

3 に答える 3

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

これを試すことができます:

                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 に答える