Its the handler in the recording thread. It should change the button text 
before thread starts audio recording but it doesnt run till long after BOTH 
threads are done. can someone please tell me whats going on?

 package com.EJH.Industries.microkr;

import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioRecord;
import android.media.AudioTrack;
import android.media.MediaRecorder;
import android.media.MediaSyncEvent;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {
//CLASS VARIABLES
    //CHAR SEQUENCE
    CharSequence easyChar = "PLAYING";
    public Handler textViewHandler = new Handler();

    //CREATE THE RECORDING OBJECT
    int audioSrc = MediaRecorder.AudioSource.MIC;
    int sampleRate = 44100;
    int chanConfig = AudioFormat.CHANNEL_IN_MONO;
    int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
    int getMinBuffSize = 200*AudioRecord.getMinBufferSize(sampleRate, 
chanConfig, audioFormat);
    int minBuffSize = (int) getMinBuffSize;
    short audioBuff[] = new short[minBuffSize];
    public AudioRecord micRecorder = new AudioRecord(audioSrc, 22050, 
chanConfig, audioFormat, minBuffSize);
    
    
    
    //CREATE THE PLAYBACK OBJECT
    int streamType = AudioManager.STREAM_MUSIC;
    int playMode = AudioTrack.MODE_STREAM;
    int playChanConfig = AudioFormat. CHANNEL_OUT_MONO;
    public AudioTrack speakerPlay = new AudioTrack(streamType, sampleRate, 
playChanConfig, audioFormat, 8192, playMode);
    
    
    
    public void startRec(){
        micRecorder.startRecording();
        micRecorder.read(audioBuff, 0, minBuffSize);
        micRecorder.stop();
        micRecorder.release();
    }
    
    public void startPlayback(){

        speakerPlay.play();
        speakerPlay.write(audioBuff, 0, minBuffSize);
        speakerPlay.stop();
        
    }
    
    
    
    
    
    
    
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button startBtn = (Button) findViewById(R.id.startButton);
        startBtn.setOnClickListener(new OnClickListener(){

            public void onClick(View v) {
                // TODO Auto-generated method stub
                
                
                Thread recThread = new Thread( new Runnable(){

                    public void run() {
                        // TODO Auto-generated method stub
                        
                        
                        textViewHandler.post(new Runnable () {
                            public void run(){
                                startBtn.setText("Recording!");
                            }
                            
                        });
                        
                        
                        startRec();
                    }
                    
                });
                
                // RUN RECORDING FUNCTION
                recThread.run();
                try {
                    recThread.join();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                
                Thread playThread = new Thread( new Runnable(){

                    public void run() {
                        // TODO Auto-generated method stub
                        
                        startPlayback();
                    }
                    
                });
                
                

                
                
                playThread.run();
                try {
                    playThread.join();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                
            }
            
        });
        
    ///////END onCreate//////////    
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    
}

-- 
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