Any idea why reading bytes from AudioRecord would cause an error while
reading shorts would not? The sound comes through great with short
but I get only static with bytes.
Working code with short[]:
int minBufferSize = AudioRecord.getMinBufferSize(this.getSampleRate(),
this.getChannelConfiguration(),
this.getAudioEncoding());
AudioRecord recordInstance = new AudioRecord
(MediaRecorder.AudioSource.MIC,
this.getSampleRate(),
this.getChannelConfiguration(),
this.getAudioEncoding(),
minBufferSize );
bufferedStreamInstance = new BufferedOutputStream(new FileOutputStream
(this.pcmFile));
DataOutputStream dataOutputStreamInstance = new DataOutputStream
(bufferedStreamInstance);
short[] tempBuffer = new short[minBufferSize ];
recordInstance.startRecording();
while (totalBytesRead < timeToRecord*sampleRate) {
bufferRead = recordInstance.read(tempBuffer, 0, minBufferSize );
for (int idxBuffer = 0; idxBuffer < bufferRead; ++idxBuffer) {
dataOutputStreamInstance.writeShort(tempBuffer[idxBuffer]);
}
}
// Close resources…
recordInstance.stop();
bufferedStreamInstance.close();
If I just change these two lines though, I get static:
1) Change:
short[] tempBuffer = new short[minBufferSize];
To this:
byte[] tempBuffer = new byte[minBufferSize];
2) And this:
for (int idxBuffer = 0; idxBuffer < bufferRead; ++idxBuffer) {
dataOutputStreamInstance.writeShort(tempBuffer[idxBuffer]);
}
To this:
dataOutputStreamInstance.write(tempBuffer, 0, bufferRead);
Anyone else experience this or have suggestions?
--
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