невозможно записать звук и получить сообщение AudioFlinger: RecordThread: переполнение буфера - PullRequest
1 голос
/ 16 ноября 2011

В моем приложении есть аудио секция, где у меня есть один recordBtn , который будет записывать аудио, и один playRecordedAudioBtn , который будет воспроизводить только что записанный звук, и у меня есть еще один playTrackBtn , который будет воспроизводить дорожку (музыкальный звук).

когда я нажимаю recordBtn и playTrackBtn , записанное аудио должно иметь то, что я записал, и отслеживать песню, но не записывается, что я хочу, и выдает сообщение в logcat

11-16 04: 40: 24.060: WARN / AudioFlinger (90): RecordThread: переполнение буфера

мой записанный аудиокод ниже:

new Thread(recordingThread).start(); // called thread from onCreate

private Runnable recordingThread = new Runnable() {

        @Override
        public void run() {
            try {
                startRecording();
            } catch (Exception e) {
                Log.d("error:", "" + e.getMessage());
            }
        }

    };

public void startRecording() throws IOException {

        String state = android.os.Environment.getExternalStorageState();

        if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {

            Toast.makeText(MainActivity.this,
                    "SD Card is not mounted.  It is " + state + ".",
                    Toast.LENGTH_SHORT).show();

        } else {

            String dirPath = Environment.getExternalStorageDirectory()
                    .getAbsolutePath();

            songTakePath = dirPath + "/SongWriters_Pad/"
                    + title_view.getText().toString() + "-Take-" + count
                    + ".wav";

            recorder = new MediaRecorder();
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

            recorder.setAudioEncodingBitRate(16);
            recorder.setAudioSamplingRate(44100);


            recorder.setOutputFile(songTakePath);

            try {
                recorder.prepare();
            } catch (Exception e) {
                e.printStackTrace();
            }

            recorder.start();
}}

Пожалуйста, предоставьте любое руководство и фрагмент кода. спасибо ..

...