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