Skip to content

Commit dc4ce8e

Browse files
committed
Fix WAV recording, when it was not worked on some devices.
1 parent 4c9e550 commit dc4ce8e

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ext.versions = [
2424

2525
def versionMajor = 0
2626
def versionMinor = 7
27-
def versionPatch = 14
27+
def versionPatch = 15
2828

2929
android {
3030
compileSdkVersion versions.targetSdkVersion

app/src/main/java/com/dimowner/audiorecorder/audio/recorder/WavRecorder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,9 @@ private void writeAudioDataToFile() {
253253
}
254254

255255
private void setWaveFileHeader(File file, int channels) {
256-
long fileSize = file.length();
256+
long fileSize = file.length() - 8;
257257
long totalSize = fileSize + 36;
258-
long byteRate = sampleRate * channels * 2; //2 byte per 1 sample for 1 channel.
258+
long byteRate = sampleRate * channels * (RECORDER_BPP/8); //2 byte per 1 sample for 1 channel.
259259

260260
try {
261261
final RandomAccessFile wavFile = randomAccessFile(file);
@@ -301,7 +301,7 @@ private byte[] generateHeader(
301301
header[13] = 'm';
302302
header[14] = 't';
303303
header[15] = ' ';
304-
header[16] = 16; // 4 bytes: size of 'fmt ' chunk
304+
header[16] = 16; //16 for PCM. 4 bytes: size of 'fmt ' chunk
305305
header[17] = 0;
306306
header[18] = 0;
307307
header[19] = 0;
@@ -317,7 +317,7 @@ private byte[] generateHeader(
317317
header[29] = (byte) ((byteRate >> 8) & 0xff);
318318
header[30] = (byte) ((byteRate >> 16) & 0xff);
319319
header[31] = (byte) ((byteRate >> 24) & 0xff);
320-
header[32] = (byte) (2 * 16 / 8); // block align
320+
header[32] = (byte) (channels * (RECORDER_BPP/8)); // block align
321321
header[33] = 0;
322322
header[34] = RECORDER_BPP; // bits per sample
323323
header[35] = 0;

0 commit comments

Comments
 (0)