0

重複の可能性:
MediaRecorder: setCamera() - エラー カメラは使用できません

ユーザーがオーディオを録音してSDカードのどこかに保存できるアプリケーションを作成しています。MediaRecorder を使用してオーディオを録音しています。

これらのチュートリアルを確認するために、stackoverflow で別のユーザーから推奨された androiddevblog Web サイトのコードの一部を再利用しています。

私の問題は、ボタンをクリックしてオーディオを録音するたびに、「アプリケーションは強制的に停止されました」というエラーが表示されることです。以下の記録機能のコードを投稿しました。

編集:元の問題を解決しました。コードにrecorder.stop()を追加すると、inllegalStateExceptionが発生します。以下のコードも更新しました (唯一の変更は startRecorder メソッドにあります)。何か案は ?

私のコードに基づいて何も記録されないことを認識しています。最初に、ファイルが作成されて保存されることを確認したいと思います。

public class MyRecorderActivity extends Activity{

private Button audio;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.questionandanswer);
....
....

 audio = (Button) findViewById(R.id.audio_recordactivity);
    audio.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

        startRecording();


        }
    });

 } 

  private String getFilename(){
        String filepath = Environment.getExternalStorageDirectory().getPath();
        File file = new File(filepath,AUDIO_RECORDER_FOLDER);

        if(!file.exists()){
                file.mkdirs();
        }

        return (file.getAbsolutePath() + "/");
  }

 private void startRecording(){
        MediaRecorder recorder = new MediaRecorder();

        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        recorder.setOutputFile(getFilename());

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

        recorder.stop();
        recorder.reset();
        recorder.release();
   }

}
4

1 に答える 1

0

問題を解決しました。権限を追加するのを忘れていました!

于 2012-06-09T01:52:59.293 に答える