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

