0

Media Recorder を使用してオーディオ ファイルを録音し、sd card. デバッガーは、行recorder.start()IllegalStateException. コードは android dev web サイトから取得され、唯一の変更はファイル名とパスです。

デバッグ メニューでエラーに到達すると、次のようViewなクラスが表示されます。

ソースが見つかりません。ソースの添付ファイルには、View.class ファイルのソースが含まれていません。下の [添付ソースの変更] をクリックして、ソースの添付ファイルを変更できます。

canRecord は、boolean最初は true に設定されており、関数で呼び出されるメソッドを決定しonClickます。その機能は働いています。

@SuppressLint("SimpleDateFormat")
private void record(){

    SimpleDateFormat timeStampFormat = new SimpleDateFormat("MM/dd/yyyy");
    String audio_path = Environment.getExternalStorageDirectory() + "/resources/resources/WI1/";
    String fileName = username +"-"+ timeStampFormat.format(new Date())+".mp4"; 
    audio_button.setText("Recording");

    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    recorder.setOutputFile(audio_path+fileName);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    try {
        recorder.prepare();
    } catch (IOException e) {
        Toast.makeText(this, "Can't record audio at this time", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
    canRecord = false;
    recorder.start();
} // record

これは記録停止機能ですが、この時点までには至っていません。

private void stopRecording(){
    audio_button.setText("Attach Audio");
    recorder.stop();
    recorder.release();
}

最後に、次のアクセス許可をマニフェストに追加しました。

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

どうすればこれを解決できますか? ありがとう!

4

2 に答える 2

1

libgdx (マルチプラットフォーム オープン ソース ゲーム エンジン) を使用していますが、記録に libgdx コードの代わりに Android コードを使用しようとしたときに同様の問題が発生しました。別のレコーダーがどこかに干渉している可能性があります

于 2013-09-07T00:06:13.227 に答える