i have written a code which records voice using audiorecord and at the same times it plays that recorded sound using AudioTrack. the main portion of the code is following -
AudioRecord audioRecord = new AudioRecord(
MediaRecorder.AudioSource.MIC, 8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, 16 * 1024);
audioRecord.startRecording();
AudioTrack audioPlayer = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, 16 * 1024, AudioTrack.MODE_STREAM);
audioPlayer.play();
for (int i = 0; i < 500; i++) {
int n = audioRecord.read(recordBuffer, 0, 160);
audioPlayer.write(recordBuffer, 0, n);
}
...........
This code works perfectly in other device . but in galaxy y , its creating problem. in galaxy y its showing obtainbuffer timed out in audiotrack. i run this code successfully in other devices. and i also checkhed that if i write the recorded sound in any file in place of using audiotrack then its working. even while using 44100 hz its working. but while using the exact above code there is nothing but some noise. please help
Comments
Post a Comment