djaus2_MauiMediaRecorderVideoLib 2.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package djaus2_MauiMediaRecorderVideoLib --version 2.1.1
                    
NuGet\Install-Package djaus2_MauiMediaRecorderVideoLib -Version 2.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="djaus2_MauiMediaRecorderVideoLib" Version="2.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="djaus2_MauiMediaRecorderVideoLib" Version="2.1.1" />
                    
Directory.Packages.props
<PackageReference Include="djaus2_MauiMediaRecorderVideoLib" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add djaus2_MauiMediaRecorderVideoLib --version 2.1.1
                    
#r "nuget: djaus2_MauiMediaRecorderVideoLib, 2.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package djaus2_MauiMediaRecorderVideoLib@2.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=djaus2_MauiMediaRecorderVideoLib&version=2.1.1
                    
Install as a Cake Addin
#tool nuget:?package=djaus2_MauiMediaRecorderVideoLib&version=2.1.1
                    
Install as a Cake Tool

MauiMediaRecorderVideoLib

A .NET MAUI library for Android video recording plus Audio using MediaRecorder with camera preview and stabilization features.

Now waits for the user to accept Camera before starting the camera preview.
Both Release and Debug versions of test app work.

Nb: The solution of test app plus this lib as one solution is a private repository.

Test App Repository

djaus2/MauiMediaRecorderVideoAndroidApp

About

This library is being developed to target a sporting Phototiming app. See djaus2/PhotoTimingDjaus

Features

  • Full-screen camera preview
  • Video recording with MediaRecorder
    • No audio recording
  • Image stabilization options (Standard or Locked)
  • Camera rotation support (0, 90, 180, 270 degrees)
  • Configurable video FPS (30, 60, or default)
  • Support for pausing and resuming recording
  • Proper handling of Android permissions
  • Screen dimensions detection for optimal preview

Usage with a MAUI Android Phone App

Installation

Start by creating a new .NET MAUI project or using an existing one.

Install the package via NuGet:

dotnet add package MauiMediaRecorderVideoLib

Also need to install the following NuGet package:

dotnet add package CommunityToolkit.Maui.Camera

Nb: CommunityToolkit.Maui.Camera is in the library but needs a reference in the App as it uses the Toolkit Peview.

Basic Setup

  1. Add the required permissions to your Android/Manifest.xaml:
<uses-permission android:name="android.permission.CAMERA" />
  1. Add call to activate permsssions in Android/MainActivity.cs:
    public class MainActivity : MauiAppCompatActivity
  {
      protected override void OnCreate(Bundle? savedInstanceState)
      {
          base.OnCreate(savedInstanceState); // Ensure base initialization always occurs

          VideoKapture.RequestPermissionsStatic();
      }
  }

This is point at which the app requests permissions. The method actually iterates through the permissions in the Android/Manifest file and requests them.


The following needs updating (See sanple app on GitHub):

  1. Initialize the video recorder service:
using MauiMediaRecorderVideoLib;

// Initialize the service
var videoRecorderService = new AndroidVideoRecorderService();
await videoRecorderService.InitializeAsync();
  1. Start the camera preview:
// Assuming you have a GraphicsView named 'cameraPreview' in your XAML
videoRecorderService.SetPreviewSurface(cameraPreview);
  1. Start recording:
// Configure recording options
videoRecorderService.SetVideoFPS(30); // Optional: Set FPS
videoRecorderService.SetImageStabilization(StabilizationMode.Locked); // Optional: Set stabilization

// Start recording

string outputFilePath = Path.Combine(FileSystem.CacheDirectory, "myVideo.mp4");
await videoRecorderService.StartRecordingAsync(outputFilePath);
  1. Control recording:
// Pause recording
await videoRecorderService.PauseRecordingAsync();

// Resume recording
await videoRecorderService.ResumeRecordingAsync();

// Stop recording
await videoRecorderService.StopRecordingAsync();
  1. Clean up resources:
// Release resources when done
await videoRecorderService.CleanupAsync();

Requirements

  • .NET MAUI project targeting Android
  • Android API level 21 or higher
  • Requires Android device with camera
Product Compatible and additional computed target framework versions.
.NET net9.0-android35.0 is compatible.  net10.0-android was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.2 148 7/16/2025
3.0.1 141 7/16/2025
3.0.0 143 7/16/2025
2.5.1 98 7/11/2025
2.5.0 103 7/11/2025
2.4.3 142 7/6/2025
2.4.2 142 7/6/2025
2.4.0 138 7/6/2025
2.3.0 143 7/6/2025
2.2.2 156 6/19/2025
2.2.1 155 5/23/2025
2.2.0 158 5/21/2025
2.1.2 154 5/20/2025
2.1.1 238 5/15/2025
2.1.0 248 5/14/2025
2.0.3 231 5/14/2025
2.0.2 242 5/14/2025
2.0.1 237 5/13/2025
2.0.0 246 5/13/2025
1.1.3 148 5/11/2025
1.1.2 150 5/11/2025
1.1.0 153 5/11/2025
1.0.3 162 5/7/2025
1.0.2 161 5/7/2025
1.0.1 153 5/6/2025
1.0.0 160 5/6/2025

Latest: Edit Readme only. Previous:Added Mic Audio and optional CrossHairs to Preview. Build: V2.1.1