From b4302a36026b6dedf12944964a7a12f3a08043aa Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Sat, 24 Sep 2016 20:57:02 +0300 Subject: [PATCH 1/2] do not crash on error --- .../activities/RecordingActivity.java | 19 +++++++++++++++++-- .../axet/audiorecorder/encoders/Encoder.java | 6 ++++-- .../audiorecorder/encoders/FileEncoder.java | 1 + .../audiorecorder/encoders/FormatWAV.java | 9 ++++++++- .../axet/audiorecorder/encoders/MuxerMP4.java | 8 +++++--- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java index 1494c27..eaefb57 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java @@ -810,8 +810,23 @@ public class RecordingActivity extends AppCompatActivity { }, new Runnable() { @Override public void run() { - Toast.makeText(RecordingActivity.this, encoder.getException().getMessage(), Toast.LENGTH_SHORT).show(); - finish(); + d.cancel(); + AlertDialog.Builder builder = new AlertDialog.Builder(RecordingActivity.this); + builder.setTitle("Error"); + builder.setMessage(encoder.getException().getMessage()); + builder.setOnCancelListener(new DialogInterface.OnCancelListener() { + @Override + public void onCancel(DialogInterface dialog) { + finish(); + } + }); + builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + builder.show(); } }); } diff --git a/app/src/main/java/com/github/axet/audiorecorder/encoders/Encoder.java b/app/src/main/java/com/github/axet/audiorecorder/encoders/Encoder.java index dc70c0e..f0222a2 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/encoders/Encoder.java +++ b/app/src/main/java/com/github/axet/audiorecorder/encoders/Encoder.java @@ -1,7 +1,9 @@ package com.github.axet.audiorecorder.encoders; public interface Encoder { - public void encode(short[] buf); + void encode(short[] buf); - public void close(); + void flush(); + + void close(); } diff --git a/app/src/main/java/com/github/axet/audiorecorder/encoders/FileEncoder.java b/app/src/main/java/com/github/axet/audiorecorder/encoders/FileEncoder.java index 99a249b..770ad70 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/encoders/FileEncoder.java +++ b/app/src/main/java/com/github/axet/audiorecorder/encoders/FileEncoder.java @@ -47,6 +47,7 @@ public class FileEncoder { while (!Thread.currentThread().isInterrupted()) { long len = rs.read(buf); if (len <= 0) { + encoder.flush(); handler.post(done); return; } else { diff --git a/app/src/main/java/com/github/axet/audiorecorder/encoders/FormatWAV.java b/app/src/main/java/com/github/axet/audiorecorder/encoders/FormatWAV.java index 44e63ce..984a516 100755 --- a/app/src/main/java/com/github/axet/audiorecorder/encoders/FormatWAV.java +++ b/app/src/main/java/com/github/axet/audiorecorder/encoders/FormatWAV.java @@ -111,10 +111,17 @@ public class FormatWAV implements Encoder { } } - public void close() { + public void flush() { try { outFile.seek(0); save(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public void close() { + try { outFile.close(); } catch (IOException e) { throw new RuntimeException(e); diff --git a/app/src/main/java/com/github/axet/audiorecorder/encoders/MuxerMP4.java b/app/src/main/java/com/github/axet/audiorecorder/encoders/MuxerMP4.java index 191d1da..b9b895b 100755 --- a/app/src/main/java/com/github/axet/audiorecorder/encoders/MuxerMP4.java +++ b/app/src/main/java/com/github/axet/audiorecorder/encoders/MuxerMP4.java @@ -87,14 +87,16 @@ public class MuxerMP4 implements Encoder { return true; } - public void close() { + public void flush() { end(); encode(); encoder.stop(); - encoder.release(); - muxer.stop(); + } + + public void close() { + encoder.release(); muxer.release(); } From 2fc7a7e206bb9bf9ee170901f2dd551b9d98b91f Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Sat, 24 Sep 2016 20:57:11 +0300 Subject: [PATCH 2/2] Bump version audiorecorder-1.1.50 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e9d8c19..40ea169 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 16 targetSdkVersion 23 - versionCode 71 - versionName "1.1.49" + versionCode 72 + versionName "1.1.50" } signingConfigs { release {