Skip to content

LuckyArch/screen-recorder-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Ή OREC - Screen Recorder

OREC Logo

Aplikasi Screen Recorder Android Modern dengan UI Premium

Platform Min SDK Target SDK Language License


πŸ“– Deskripsi

OREC adalah aplikasi screen recorder untuk Android yang dibangun menggunakan Kotlin murni. Aplikasi ini menggunakan MediaProjection API untuk menangkap layar, MediaCodec untuk encoding hardware H.264, dan MediaMuxer untuk menghasilkan file MP4 berkualitas tinggi.

✨ Fitur Utama

  • 🎬 Rekam Layar HD - Rekam layar dengan resolusi hingga 1080p
  • ⚑ Hardware Encoding - Menggunakan encoder hardware untuk performa optimal
  • 🎀 Opsi Audio - Pilihan tanpa audio, mikrofon, atau audio internal (Android 10+)
  • βš™οΈ Pengaturan Fleksibel - Atur resolusi, frame rate, dan bitrate sesuai kebutuhan
  • πŸŒ“ Mode Gelap/Terang - UI otomatis menyesuaikan tema sistem
  • πŸ’« Animasi Modern - Pulse effect dan transisi yang halus
  • πŸ“± Android 15 Ready - Mendukung Android versi terbaru

πŸ“Έ Screenshot

Main Screen Recording Settings
Main Recording Settings

πŸš€ Cara Instalasi

Prasyarat

  • Android Studio Hedgehog atau lebih baru
  • JDK 17 atau lebih baru
  • Android SDK dengan API Level 35
  • Perangkat Android dengan minimum API 24 (Android 7.0)

Clone Repository

git clone https://github.com/LuckyArch/screen-recorder-app.git
cd screen-recorder-app

Build APK

Via Android Studio:

  1. Buka project di Android Studio
  2. Sync Gradle (File > Sync Project with Gradle Files)
  3. Pilih Build > Build Bundle(s) / APK(s) > Build APK(s)
  4. APK tersedia di app/build/outputs/apk/debug/

Via Command Line:

# Windows
.\gradlew.bat assembleDebug

# Linux/Mac
./gradlew assembleDebug

πŸ“ Struktur Project

OREC/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ src/main/
β”‚   β”‚   β”œβ”€β”€ java/com/orec/recorder/
β”‚   β”‚   β”‚   β”œβ”€β”€ engine/              # Core recording logic
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ RecordingConfiguration.kt
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AudioCaptureManager.kt
β”‚   β”‚   β”‚   β”‚   └── ScreenRecorderEngine.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ service/             # Background service
β”‚   β”‚   β”‚   β”‚   └── RecorderService.kt
β”‚   β”‚   β”‚   └── ui/                  # User interface
β”‚   β”‚   β”‚       β”œβ”€β”€ MainActivity.kt
β”‚   β”‚   β”‚       └── SettingsActivity.kt
β”‚   β”‚   └── res/                     # Resources
β”‚   β”‚       β”œβ”€β”€ layout/              # XML layouts
β”‚   β”‚       β”œβ”€β”€ drawable/            # Icons & backgrounds
β”‚   β”‚       β”œβ”€β”€ values/              # Colors, strings, themes
β”‚   β”‚       └── values-night/        # Dark mode resources
β”‚   └── build.gradle.kts             # App-level build config
β”œβ”€β”€ docs/                            # Dokumentasi
β”œβ”€β”€ build.gradle.kts                 # Project-level build config
β”œβ”€β”€ settings.gradle.kts              # Gradle settings
└── README.md                        # File ini

βš™οΈ Konfigurasi

Mengubah Pengaturan Default

Buka file app/src/main/res/values/strings.xml untuk mengubah nilai default:

<!-- Default Settings -->
<string name="default_resolution">1920x1080</string>
<string name="default_fps">30</string>
<string name="default_bitrate">8000000</string>
<string name="default_audio_source">none</string>

Mengubah Warna Tema

Mode Terang: app/src/main/res/values/colors.xml Mode Gelap: app/src/main/res/values-night/colors.xml

<!-- Primary Colors -->
<color name="primaryColor">#00C853</color>
<color name="primaryColorDark">#00A844</color>
<color name="accentColor">#00E676</color>

<!-- Background Gradient -->
<color name="gradientStart">#1A1A2E</color>
<color name="gradientMiddle">#16213E</color>
<color name="gradientEnd">#0F3460</color>

Mengubah Nama Aplikasi

Edit app/src/main/res/values/strings.xml:

<string name="app_name">OREC</string>

πŸ—οΈ Arsitektur

Aplikasi menggunakan arsitektur yang sederhana namun terstruktur:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MainActivity  β”‚  ← UI Layer
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ binds
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ RecorderService β”‚  ← Foreground Service
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ uses
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ScreenRecorder  β”‚  ← Recording Engine
β”‚     Engine      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ uses
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AudioCapture    β”‚  ← Audio Handler
β”‚    Manager      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Komponen Utama

Komponen Fungsi
MainActivity Menampilkan UI utama dengan tombol rekam dan timer
SettingsActivity Halaman pengaturan resolusi, FPS, bitrate, audio
RecorderService Foreground service untuk menjalankan rekaman
ScreenRecorderEngine Core logic: MediaProjection, MediaCodec, MediaMuxer
AudioCaptureManager Menangkap audio dari mikrofon atau internal
RecordingConfiguration Data class untuk menyimpan konfigurasi

πŸ“‹ Permissions yang Digunakan

Permission Keterangan
RECORD_AUDIO Untuk merekam audio dari mikrofon
FOREGROUND_SERVICE Untuk menjalankan service di foreground
FOREGROUND_SERVICE_MEDIA_PROJECTION Khusus Android 14+ untuk screen capture
POST_NOTIFICATIONS Untuk menampilkan notifikasi saat merekam

πŸ› οΈ Teknologi yang Digunakan

  • Kotlin - Bahasa pemrograman utama
  • MediaProjection API - Untuk menangkap tampilan layar
  • MediaCodec - Hardware encoder untuk H.264 video
  • MediaMuxer - Untuk menghasilkan file MP4
  • MediaStore API - Untuk menyimpan video (Android 10+)
  • Material Design 3 - Komponen UI modern
  • ViewBinding - Type-safe view access
  • AndroidX - Library support terbaru

🀝 Kontribusi

Kontribusi sangat diterima! Silakan:

  1. Fork repository ini
  2. Buat branch fitur (git checkout -b fitur/FiturBaru)
  3. Commit perubahan (git commit -m 'Menambahkan fitur baru')
  4. Push ke branch (git push origin fitur/FiturBaru)
  5. Buat Pull Request

πŸ“„ Lisensi

Project ini dilisensikan di bawah MIT License - lihat file LICENSE untuk detail.


πŸ‘¨β€πŸ’» Author

LuckyArch


πŸ“ž Support

Jika menemukan bug atau punya saran, silakan buat Issue baru.


Made with ❀️ using Kotlin

About

A modern Android Screen Recorder built using Kotlin and native Android APIs.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages