ed_screen_recorder는 Android 및 iOS 기기에서 화면 녹화 기능을 가능하게 하는 Flutter 플러그인입니다. Android SDK 21 이상 및 iOS 10 이상을 지원하며, 개발자가 앱 내에서 디바이스 화면을 캡처할 수 있도록 합니다. 플러그인은 Flutter 프로젝트에 원활하게 통합되며 간단한 API를 통해 화면 녹화 기능에 접근할 수 있습니다. 튜토리얼 제작, 디버깅 도구 또는 인터랙티브 앱 시연에 적합합니다.
사용 사례
앱 내 튜토리얼 비디오 만들기
화면 녹화를 통한 앱 동작 디버깅
교육용 또는 시범 앱 만들기
분석을 위해 사용자 상호작용 기록하기
화면 공유 기능 개발
주요 기능
크로스 플랫폼 지원 (Android 및 iOS)
Flutter와의 간단한 통합
Android SDK 21 이상 및 iOS 10 이상을 지원
실시간 화면 캡처를 활성화합니다
경량화되고 핵심 기능에 집중
적합한 대상
화면 녹화가 필요한 앱 개발자
교육 앱 개발자
디버깅 및 테스트 도구
사용자 온보딩 기능 빌더
인터랙티브 데모 애플리케이션
고려 사항
두 플랫폼 모두 적절한 권한이 필요합니다
지원되는 OS 버전에 한정
백그라운드 녹음에 추가 구성이 필요할 수 있습니다
최적화되지 않은 상태에서는 고해상도 또는 장시간 녹음에 적합하지 않음
사용자 화면을 기록할 때의 개인정보 보호 고려 사항
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
ED Flutter Screen Recorder
Screen recorder plugin for Flutter. Supports IOS and Android devices.It does not work on the IOS emulator!!!!
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;
@overridevoidinitState() {
super.initState();
screenRecorder = ScreenRecorder();
}
Future<void> startRecord({requiredString 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;
});
}
@overrideWidgetbuild(BuildContext context) {
returnScaffold(
appBar: AppBar(
title: constText("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: constText('START RECORD')),
ElevatedButton(onPressed: () => stopRecord(), child: constText('STOP RECORD')),
],
),
),
);
}
Resources used within the plugin
HBRecorder
Lightweight screen and audio recording Android library.
URL