fix android crash when pausing or resuming video on APIs lower than 24. (#2029)

This PR fixes a crash when pause/resume methods are called in APIs lower than 24 on Android.
diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md
index 49535b7..9ed7a78 100644
--- a/packages/camera/CHANGELOG.md
+++ b/packages/camera/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.4+1
+
+* Fix Android pause and resume video crash when executing in APIs below 24.
+
 ## 0.5.4
 
 * Add feature to pause and resume video recording.
diff --git a/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java b/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java
index 110c5b6..80da644 100644
--- a/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java
+++ b/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java
@@ -21,6 +21,7 @@
 import android.media.Image;
 import android.media.ImageReader;
 import android.media.MediaRecorder;
+import android.os.Build;
 import android.util.Size;
 import android.view.OrientationEventListener;
 import android.view.Surface;
@@ -395,7 +396,12 @@
     }
 
     try {
-      mediaRecorder.pause();
+      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+        mediaRecorder.pause();
+      } else {
+        result.error("videoRecordingFailed", "pauseVideoRecording requires Android API +24.", null);
+        return;
+      }
     } catch (IllegalStateException e) {
       result.error("videoRecordingFailed", e.getMessage(), null);
       return;
@@ -411,7 +417,13 @@
     }
 
     try {
-      mediaRecorder.resume();
+      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+        mediaRecorder.resume();
+      } else {
+        result.error(
+            "videoRecordingFailed", "resumeVideoRecording requires Android API +24.", null);
+        return;
+      }
     } catch (IllegalStateException e) {
       result.error("videoRecordingFailed", e.getMessage(), null);
       return;
diff --git a/packages/camera/example/lib/main.dart b/packages/camera/example/lib/main.dart
index cfdcd1d..1c4b116 100644
--- a/packages/camera/example/lib/main.dart
+++ b/packages/camera/example/lib/main.dart
@@ -393,7 +393,7 @@
       await controller.pauseVideoRecording();
     } on CameraException catch (e) {
       _showCameraException(e);
-      return null;
+      rethrow;
     }
   }
 
@@ -406,7 +406,7 @@
       await controller.resumeVideoRecording();
     } on CameraException catch (e) {
       _showCameraException(e);
-      return null;
+      rethrow;
     }
   }
 
@@ -477,6 +477,7 @@
 Future<void> main() async {
   // Fetch the available cameras before initializing the app.
   try {
+    WidgetsFlutterBinding.ensureInitialized();
     cameras = await availableCameras();
   } on CameraException catch (e) {
     logError(e.code, e.description);
diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml
index e94d4bd..c9e7152 100644
--- a/packages/camera/pubspec.yaml
+++ b/packages/camera/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A Flutter plugin for getting information about and controlling the
   camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video,
   and streaming image buffers to dart.
-version: 0.5.4
+version: 0.5.4+1
 
 authors:
   - Flutter Team <flutter-dev@googlegroups.com>