Hello everybody

Any thought?


On Sep 13, 9:19 pm, harpreet singh <harpreetj...@gmail.com> wrote:
> Hi,
>
> I am trying to record the voice using AudioRecord class and writing
> the read bytes to speaker using AudioTrack class. I am able to hear
> the voice coming from Speaker but the voice is very low and a lot ofnoiseis 
> coming along with the recorded voice.
>
> Any solution to resolve this problem to reduce thenoiseand loud the
> actual voice.
>
> I am using below code for this:
>
> package com.my.mic.record;
>
> import android.media.AudioFormat;
> import android.media.AudioManager;
> import android.media.AudioRecord;
> import android.media.AudioTrack;
> import android.media.MediaRecorder;
> import android.util.Log;
>
> public class Record extends Thread
> {
>
>         int numCrossing,p,numSamples,af;
>
>         static final int bufferSize = 200000;
>         short[] buffer = new short[bufferSize];
>         short[] readBuffer = new short[bufferSize];
>         boolean isRecording;
>         AudioManager am;
>
>         public AudioRecord arec;
>         public AudioTrack atrack;
>
>         private int sampleRate = 8000;
>
>         public void run() {
>
>                 isRecording = true;
>
> android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
>
>                 int buffersize =
> AudioRecord.getMinBufferSize(sampleRate,AudioFormat.CHANNEL_CONFIGURATION_MONO,
> AudioFormat.ENCODING_PCM_16BIT);
>
>                 arec = new
> AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT,
>                                 buffersize);
>
>                 //buffersize = arec.getMinBufferSize(arec.getSampleRate(),
> arec.getChannelConfiguration(), arec.getAudioFormat());
>
>                 atrack = new
> AudioTrack(AudioManager.STREAM_MUSIC,arec.getSampleRate(),arec.getChannelConfiguration(),arec.getAudioFormat(),
>                                 buffersize,AudioTrack.MODE_STREAM);
>
>                 
> am.setRouting(AudioManager.MODE_NORMAL,AudioManager.ROUTE_EARPIECE,
> AudioManager.ROUTE_ALL);
>                 //am.setMode(AudioManager.MODE_NORMAL);
>
>                 Log.d("SPEAKERPHONE", "Is speakerphone on? : " +
> am.isSpeakerphoneOn());
>
>                 atrack.setPlaybackRate(sampleRate);
>
>                 byte[] buffer = new byte[buffersize];
>                 arec.startRecording();
>                 atrack.play();
>                 //atrack.setStereoVolume(atrack.getMaxVolume(),
> atrack.getMaxVolume());
>
>                 final float frequency = sampleRate;
>         float increment = (float)((2*Math.PI) * frequency / 44100); //
> angular increment for each sample
>         float angle = 0;
>         //AndroidAudioDevice device = new AndroidAudioDevice( );
>
>                 while(isRecording) {
>
>                         try {
>
>                                 arec.read(buffer, 0, buffersize);
>                                 atrack.write(buffer, 0, buffer.length);
>
>                         } catch (Exception e) {
>                                 Log.d("Record", ""+e);
>                         }
>                 }
>
>                 arec.stop();
>                 atrack.stop();
>                 //device.releaseTrack();
>                 isRecording = false;
>         }
>
>         public boolean isRecording() {
>                 return isRecording;
>         }
>
>         public void setRecording(boolean isRecording) {
>                 this.isRecording = isRecording;
>         }
>
>         public AudioManager getAm() {
>                 return am;
>         }
>
>         public void setAm(AudioManager am) {
>                 this.am = am;
>         }
>
>         public void stopRecording(){
>                 arec.stop();
>         arec.release();
>         atrack.stop();
>         atrack.release();
>         arec=null;
>         atrack=null;
>         setRecording(false);
>         this.stop();
>         }
>
>
>
>
>
>
>
> }

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

Reply via email to