Search packages, repositories and app categories

Package detailsv0.0.15

ed_screen_recorder

Screen Recorder for Flutter. This plug-in requires Android SDK 21+ and iOS 10+

AndroidiOS
30-day downloads
110
Likes
58
Pub points
130

Install package

flutter pub add ed_screen_recorder

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

ed_screen_recorder is a Flutter plugin that enables screen recording functionality on Android and iOS devices. It supports Android SDK 21+ and iOS 10+, allowing developers to capture device screens within their apps. The plugin integrates seamlessly with Flutter projects and provides access to screen recording features through a simple API. Ideal for creating tutorials, debugging tools, or interactive app demonstrations.

Use cases

  • Creating in-app tutorial videos
  • Debugging app behavior via screen recordings
  • Building educational or demonstration apps
  • Recording user interactions for analytics
  • Developing screen-sharing features

Key features

  • Cross-platform support (Android & iOS)
  • Simple integration with Flutter
  • Supports Android SDK 21+ and iOS 10+
  • Enables real-time screen capture
  • Lightweight and focused on core functionality

Suitable for

  • App developers needing screen recording
  • Educational app creators
  • Debugging and testing tools
  • User onboarding feature builders
  • Interactive demo applications

Considerations

  • Requires appropriate permissions on both platforms
  • Limited to supported OS versions
  • May require additional configuration for background recording
  • Not suitable for high-resolution or long-duration recordings without optimization
  • Privacy considerations when recording user screens

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

ED Flutter Screen Recorder

Screen recorder plugin for Flutter. Supports IOS and Android devices.It does not work on the IOS emulator!!!!

Who made it? It's Eren ;)

pubdev

Ekler

android/app/build.gradle

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.github.HBiSoft:HBRecorder:3.0.1'
    implementation 'androidx.appcompat:appcompat:1.4.1'
}

android/app/src/main/AndroidManifest.xml

    xmlns:tools="http://schemas.android.com/tools"
    package="com.example">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" tools:ignore="ScopedStorage" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

You only need add the permission message on the Info.plist

  <key>NSPhotoLibraryUsageDescription</key>
	<string>Save video in gallery</string>
	<key>NSMicrophoneUsageDescription</key>
	<string>Save audio in video</string>

Usage/Examples

import 'package:screen_recorder/screen_recorder.dart';

ScreenRecorder? screenRecorder;
Map<String, dynamic>? _response;

@override
void initState() {
    super.initState();
    screenRecorder = ScreenRecorder();
}

  Future<void> startRecord({required String fileName}) async {
    // Directory tempDir = await getTemporaryDirectory();
    // String tempPath = tempDir.path;
    var response = await edScreenRecorder?.startRecordScreen(
      fileName: fileName,
      // `dirPathToSave` Optional. It will save the video there when you give the file path with whatever you want.
      //If you leave it blank, the Android operating system will save it to the gallery.
      dirPathToSave: tempPath,
      audioEnable: false,
    );

    setState(() {
      _response = response;
    });
  }

  Future<void> stopRecord() async {
    var response = await edScreenRecorder?.stopRecord();
    setState(() {
      _response = response;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Screen Recording Debug"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text("File: ${(_response?['file'] as File?)?.path}"),
            Text("Status: ${(_response?['success']).toString()}"),
            Text("Event: ${_response?['eventname']}"),
            Text("Progress: ${(_response?['progressing']).toString()}"),
            Text("Message: ${_response?['message']}"),
            Text("Video Hash: ${_response?['videohash']}"),
            Text("Start Date: ${(_response?['startdate']).toString()}"),
            Text("End Date: ${(_response?['enddate']).toString()}"),
            ElevatedButton(onPressed: () => startRecord(fileName: "eren"), child: const Text('START RECORD')),
            ElevatedButton(onPressed: () => stopRecord(), child: const Text('STOP RECORD')),
          ],
        ),
      ),
    );
  }

Resources used within the plugin

HBRecorder Lightweight screen and audio recording Android library. URL

Watcher

A file system watcher. URL

UUID

Simple, fast generation of RFC4122 UUIDs. URL

Contributors

Thanks my friends Mehmet for contributed.

Author: endmr11 "github"

Features

  • IOS operating system support. "check"
  • Custom File Path-Directory "check"
  • Custom Audio Record
  • Custom Video Frame
  • Code optimization.

Feedback

If you have any feedback, please contact us at erndemir.1@gmail.com.

Categories

Dependencies

Dependency list 1 items

Source repository

Projects using this package

No data available yet.