From dc4ce8e76d3bb982e1849e0ba85d7cb69c4106de Mon Sep 17 00:00:00 2001 From: Dimowner Date: Fri, 10 Jan 2020 00:43:46 +0200 Subject: [PATCH] Fix WAV recording, when it was not worked on some devices. --- app/build.gradle | 2 +- .../audiorecorder/audio/recorder/WavRecorder.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3e51ca47..602341f8 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,7 +24,7 @@ ext.versions = [ def versionMajor = 0 def versionMinor = 7 -def versionPatch = 14 +def versionPatch = 15 android { compileSdkVersion versions.targetSdkVersion diff --git a/app/src/main/java/com/dimowner/audiorecorder/audio/recorder/WavRecorder.java b/app/src/main/java/com/dimowner/audiorecorder/audio/recorder/WavRecorder.java index daed584b..df7a6edc 100644 --- a/app/src/main/java/com/dimowner/audiorecorder/audio/recorder/WavRecorder.java +++ b/app/src/main/java/com/dimowner/audiorecorder/audio/recorder/WavRecorder.java @@ -253,9 +253,9 @@ private void writeAudioDataToFile() { } private void setWaveFileHeader(File file, int channels) { - long fileSize = file.length(); + long fileSize = file.length() - 8; long totalSize = fileSize + 36; - long byteRate = sampleRate * channels * 2; //2 byte per 1 sample for 1 channel. + long byteRate = sampleRate * channels * (RECORDER_BPP/8); //2 byte per 1 sample for 1 channel. try { final RandomAccessFile wavFile = randomAccessFile(file); @@ -301,7 +301,7 @@ private byte[] generateHeader( header[13] = 'm'; header[14] = 't'; header[15] = ' '; - header[16] = 16; // 4 bytes: size of 'fmt ' chunk + header[16] = 16; //16 for PCM. 4 bytes: size of 'fmt ' chunk header[17] = 0; header[18] = 0; header[19] = 0; @@ -317,7 +317,7 @@ private byte[] generateHeader( header[29] = (byte) ((byteRate >> 8) & 0xff); header[30] = (byte) ((byteRate >> 16) & 0xff); header[31] = (byte) ((byteRate >> 24) & 0xff); - header[32] = (byte) (2 * 16 / 8); // block align + header[32] = (byte) (channels * (RECORDER_BPP/8)); // block align header[33] = 0; header[34] = RECORDER_BPP; // bits per sample header[35] = 0;