ed_screen_recorder
Screen Recorder for Flutter. This plug-in requires Android SDK 21+ and iOS 10+
Screen recorder plugin for Flutter. Supports IOS and Android devices.
English project snapshot. Visit GitHub for the latest content.
Screen recorder plugin for Flutter. Supports IOS and Android devices.It does not work on the IOS emulator!!!!
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>
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')),
],
),
),
);
}
HBRecorder Lightweight screen and audio recording Android library. URL
Watcher
A file system watcher. URL
UUID
Simple, fast generation of RFC4122 UUIDs. URL
Thanks my friends Mehmet for contributed.
If you have any feedback, please contact us at erndemir.1@gmail.com.
Dependency list 4 items
{"sdk":"flutter"}^3.0.6{"sdk":"flutter"}^1.0.0Start with your use case, compare repository activity, and check the original project before adopting it.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗