Hi, I think I read somewhere that you can't record audio and play it back at the same time.
Anyway, write will always block until the buffer is full. Not sure if that is part of the problem though, you are probably using the same size buffer for in and out. See above. -niko On Nov 3, 6:46 am, raghu <[email protected]> wrote: > Hi, > i am using android SDK 1.5, below is the code where i am recording > voice from mic and playing it. > > problems i am facing are : > voice quality is not good, > some background voice is there, > write is getting blocked. > > i have set the permission in .xml file also like : > android.permission.INTERNET, > android.permission.MODIFY_AUDIO_SETTINGS, > android.permission.RECORD_AUDIO, > android.permission.WRITE_SETTINGS > > help required > > below is the code : > to record the audio i am using read() and to play write() is being > called. > is my code correct ? > > public void onCreate(Bundle savedInstanceState) > { > super.onCreate(savedInstanceState); > setContentView(R.layout.main); > > byte[] Buffer = new byte [80000] ; > > int Size = 320 ; > int BuffLen = 1 ; > int SizeSoFar = 0 ; > int MinBuffSize ; > int Written = 0 ; > int temp = 0 ; > > AudioRecord audioRecord = new AudioRecord > (MediaRecorder.AudioSource.MIC, 8000, > > AudioFormat.CHANNEL_CONFIGURATION_MONO, > AudioFormat.ENCODING_PCM_16BIT, 4096) ; > audioRecord.startRecording () ; > > MinBuffSize = AudioRecord.getMinBufferSize(8000,2,2); > > AudioTrack track = new AudioTrack (AudioManager.STREAM_MUSIC, > 8000, > > AudioFormat.CHANNEL_CONFIGURATION_MONO , > AudioFormat.ENCODING_PCM_16BIT, > 4096, AudioTrack.MODE_STREAM) ; > > track.play() ; > > while (BuffLen != 0) > { > SizeSoFar += audioRecord.read (Buffer, 0, Size) ; > > Written = track.write (Buffer, 0, Size) ; > try > { > Thread.sleep (5) ; > } > catch (InterruptedException e) > { > // TODO Auto-generated catch block > e.printStackTrace() ; > } > } > audioRecord.stop() ; > track.stop() ; > } > > help required . > > logcat message are : > > D/AudioHardware( 556): AudioStreamInGeneric::set(0xad68, 7, 1, 1, > 8000) > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408180, 320) > from fd 7 > D/AudioHardware( 556): AudioStreamInGeneric::read(0x40408040, 320) > from fd 7 > W/AudioFlinger( 556): AudioRecordThread: buffer overflow -- You received this message because you are subscribed to the Google Groups "Android Beginners" 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-beginners?hl=en

