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

Reply via email to