I just want get the audio input data, and draw a wave, but now I don't
know how to get audio data.

This is my code:

package com.fugui.fetal;

import java.nio.ByteBuffer;
import java.nio.ShortBuffer;

import android.app.Activity;
import android.content.Context;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.media.AudioRecord.OnRecordPositionUpdateListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Main extends Activity {
        private final static int SAMPLE_RATE_IN_HZ = 8000;
private final static int BUFFER_SIZE = 20 * SAMPLE_RATE_IN_HZ;
        AudioRecord audioRecord;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                Button button = (Button) findViewById(R.id.Button01);

                button.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                                if (audioRecord.getRecordingState() ==
AudioRecord.RECORDSTATE_RECORDING) {
                                        audioRecord.stop();
                                        ((Button) v).setText("Start");
                                } else {
                                        
audioRecord.setRecordPositionUpdateListener(new
OnRecordPositionUpdateListener() {

                                                public void 
onMarkerReached(AudioRecord recorder) {
                                                        Log.i( "Hill" , 
"onMarkerReached") ;
                                                        recordParse();
                                                }

                                                public void 
onPeriodicNotification(AudioRecord recorder) {
                                                        Log.i( "Hill", 
"onPeriodicNotification" );
                                                        recordParse();
                                                }
                                        });
                                        Log.i("Hill",  
"setPositionNotificationPeriod Result: " +
audioRecord.setPositionNotificationPeriod(1000) );
                                        //Log.i("Hill",  
"setNotificationMarkerPosition Result: " +
audioRecord.setNotificationMarkerPosition(8000) );


                                        audioRecord.startRecording();
                                        ((Button) v).setText("Stop");

                                        recordParse();
                                }
                        }
                });

                init();

                if( audioRecord.getState() != AudioRecord.STATE_INITIALIZED )
                {
                        button.setEnabled( false );
                        ((TextView) findViewById(R.id.TextOut)).setText( "Audio 
Init
Failed.");
                }
        }

        public void init() {
                audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
SAMPLE_RATE_IN_HZ,
                                                AudioFormat.CHANNEL_IN_MONO, 
AudioFormat.ENCODING_PCM_16BIT,
BUFFER_SIZE);

        }

        public void recordParse() {

                short buffer[] = new short[8000 ];

                ((TextView) findViewById(R.id.TextOut)).setText( "Size: " +
audioRecord.read( buffer, 0, buffer.length ) + " Time:" +
System.currentTimeMillis() );
        }
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to