Skip to content

skonester/SasamiVLC

Repository files navigation

SasamiVLC

Overview

SasamiVLC is now a modern desktop media player built using Compose Multiplatform (Kotlin/JVM) and the vlcj library. This project has shifted away from the legacy Electron + Svelte approach because Electron introduced Direct2D/Direct3D access control (DAC) issues when rendering LibVLC output inside a web-based window.

By using vlcj 4 and Java Native Access (JNA), SasamiVLC embeds the high-performance native LibVLC engine directly inside a JVM window scope. That lets it keep the original customized frameless aesthetic (backdrop glassmorphism, animated drifting orbs, and active audio spectrum bars) while delivering native hardware-accelerated video decoding and more stable video rendering.

Choosing Compose Multiplatform was intentional: it reduces the overhead of Electron and web views, improves render consistency for native video surfaces, and unlocks significant performance gains on desktop platforms. The current implementation is optimized for smoother GPU-backed playback and better window management than the old Electron path.

The core implementation uses the Kotlin/JVM stack. The player engine wrapper is located at: src/main/kotlin/com/sasami/vlc/player/VlcPlayer.kt.

Showcase

Showcase

Showcase

Getting Started

Prerequisites

  • JDK 17 or higher (Ensure JAVA_HOME is set)
  • Native VLC 64-bit binaries (bundled in resources/vlc/ for Windows)

Development

Run the application locally:

# On Windows / PowerShell
$env:JAVA_HOME="C:\Users\admin\scoop\apps\openjdk17\17.0.2-8"; .\gradlew.bat run

Build & Package

To compile and check syntax:

# On Windows / PowerShell
$env:JAVA_HOME="C:\Users\admin\scoop\apps\openjdk17\17.0.2-8"; .\gradlew.bat compileKotlin

To package the application into a distribution format (e.g. MSI installer):

# On Windows / PowerShell
$env:JAVA_HOME="C:\Users\admin\scoop\apps\openjdk17\17.0.2-8"; .\gradlew.bat package

Configuration & Storage

User preferences, volume level, active audio device, and persistent playlists are serialized to JSON matching the legacy schema and loaded on startup:

  • Windows: %APPDATA%\SasamiVLC\config.json

Documentation

For a detailed look at the project architecture and original design philosophy, see ARCHITECTURE.md.

About

compose desktop with LibVLC

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors