Also noticed in your code you are doing SizeSoFar +=. That is not
good. You will overrun the buffer eventually I think...



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

Reply via email to