When the mic can hear the speaker then there is "acoustical feedback
howling" because the sound goes around and around.
To stop the howling:
a) Turn down the gain control or volume control.
b) Separate the mic and speaker and point them away from each other.
c) Use a good speaker with a flat frequency response instead of a cheap
speaker that has a peak in its frequency response

On Thu, May 26, 2011 at 5:53 PM, neha <[email protected]> wrote:

> Denial,
>
> I tried what u said,but it dint solve my problem but producing more
> echo..
> I think its happening bcoz voice coming from speaker is also going in
> mic.
>
> If u have ny idea about it,Plz help.
>
> On May 26, 1:20 pm, Daniel Drozdzewski <[email protected]>
> wrote:
> > On Thu, May 26, 2011 at 11:59 AM, neha <[email protected]> wrote:
> > > Thanx alot 4 rply
> > > but if i use large buffer size ,it produce delay between record and
> > > play.
> >
> > Neha,
> >
> > All I suggested was to use the larger of values returned by both
> > getMinBufferSize() calls for all 3 aspects: recording, playing and
> > transfer of the data instead of arbitrary 400.
> >
> >
> >
> >
> >
> > > On May 26, 11:46 am, Daniel Drozdzewski <[email protected]>
> > > wrote:
> > >> Neha,
> >
> > >> Your echo comes from the fact that you are using 400 bytes buffer to
> > >> transfer the recording to the playback.
> > >> It will physically take time to fill that buffer and then process.
> >
> > >> Making the buffer much smaller might not necessarily work either, as
> > >> it will mean more overhead of the recording + playing management in a
> > >> unit of time. However adjusting the buffer size would be a first step.
> >
> > >> You are using getMinBufferSize() method, but you ignore the returned
> > >> values, when it comes to the buffer used to transfer the recording to
> > >> the playback track.
> >
> > >> You should use Math.max(recordingMinBufferSize, playbackMinBufferSize)
> > >> as a buffer size in all 3 cases.
> > >> You should also write only bytesRead bytes, rather than writing full
> > >> buffer every time.
> >
> > >> Daniel
> >
> > >> On Thu, May 26, 2011 at 10:28 AM, neha <[email protected]> wrote:
> > >> > Is there any way to synchronize the capturing and playback of audio
> > >> > data in Android?
> >
> > >> > I am using audioRecord/track to achieve this.But its producing echo.
> > >> > Is there any way to cancel echo.
> > >> > My code is-
> > >> >                                {
> > >> >                                isRecording=true;
> >
> > >> >                                bufferSize =
> > >> >
> AudioRecord.getMinBufferSize(8000,AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT);
> > >> >                                audioRecord = new
> AudioRecord(MediaRecorder.AudioSource.MIC,
> > >> >                                8000,
> > >> >
> AudioFormat.CHANNEL_CONFIGURATION_MONO,AudioFormat.ENCODING_PCM_16BIT,
> > >> > bufferSize);
> >
> > >> >                                audioRecord.startRecording();
> >
> > >> >                                int BUFFER_SIZE_IN_BYTES
> > >> >
> =AudioTrack.getMinBufferSize(RECORDER_SAMPLERATE,AudioFormat.CHANNEL_CONFIGURATION_MONO,RECORDER_AUDIO_ENCODING);
> > >> >                                AudioTrack audioTrack = new
> > >> > AudioTrack(AudioManager.STREAM_SYSTEM,
> > >> >
>  8000,AudioFormat.CHANNEL_CONFIGURATION_MONO,
> > >> >
>  AudioFormat.ENCODING_PCM_16BIT, BUFFER_SIZE_IN_BYTES,
> > >> >
>  AudioTrack.MODE_STREAM);
> > >> >                                byte[] buffer=new byte[400];
> > >> >                                audioTrack.play();
> > >> >                                while (isRecording) { int bytesRead =
> audioRecord.read(buffer,
> > >> > 0,
> > >> >                                400);
> > >> >                                int bytesWritten =
> audioTrack.write(buffer, 0, 400);
> >
> > >> >                                }
> >
> > >> > --
> > >> > 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
> >
> > >> --
> > >> Daniel Drozdzewski
> >
> > > --
> > > 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
> >
> > --
> > Daniel Drozdzewski
>
> --
> 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
>

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