搜索插件、代码仓与 APP 分类

GitHub 代码仓endmr11/ed_screen_recorder

ed_screen_recorder

适用于 Flutter 的屏幕录制插件。支持 iOS 和 Android 设备。

ed_screen_recorder 项目封面
星标
28
复刻
48
最近推送(UTC)
2024年8月29日
项目状态
未归档

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

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.

Eren Demir GitHub avatar
GitHub 作者

Eren Demir ↗

Solution Architect & System Design Enthusiast

Istanbul, Turkey
语言JavaSwiftDartRubyObjective-C

此仓库发布的插件

使用的依赖

依赖清单 4 项

  • flutter{"sdk":"flutter"}
  • uuid^3.0.6
  • flutter_test开发依赖{"sdk":"flutter"}
  • flutter_lints开发依赖^1.0.0

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗