0

audiorecorder を使用しようとしていますが、audiorecorder が初期化されていないという不正な引数の例外が発生します。

私のコードはここに示されているようなものです

private static final int RECORDER_SAMPLERATE = 44100;
private static final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_STEREO;
private static final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;

recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,RECORDER_SAMPLERATE,  RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);                        
recorder.startRecording();

一部の人にはうまくいくように見える別の答えを見ましたが、私にはうまくいきません AudioRecordオブジェクトが初期化されていません

4

2 に答える 2

0

代わりにこれを試してください:

private MediaRecorder mRecorder = null;
private void startRecording() {
        String fileSaveName = generateNameForAudioFile();
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mRecorder.setOutputFile(fileSaveName);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

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

        mRecorder.start();
    }



private void stopRecording() {
        startRecording.setEnabled(true);
        try {
            if (mRecorder != null) {
                mRecorder.stop();
                mRecorder.release();
                mRecorder = null;
            }
        } catch (Exception e) {
        }

    }

public String generateNameForAudioFile() {

        String audioName = GetrandFilename();
        mFileName = Environment.getExternalStorageDirectory().getPath() + "/"
                + audioName + "myaudio" + ".3gp";

        );
        return mFileName;
    }



@Override
    public void onPause() {
        super.onPause();

            try {
                if (mRecorder != null) {
                    mRecorder.stop();
                    mRecorder.release();
                    mRecorder = null;
                }
            } catch (Exception e) {
            }
              }

この投稿が役に立ったかどうか教えてください。

于 2012-07-27T11:24:50.007 に答える
0

私は実際にアプリケーションタグ内のアクセス許可を与えていたばかげたことをしていましたが、それを修正しました。時間とサポートに感謝します。

于 2012-07-28T10:13:59.737 に答える