ComposeVideoPlayer
VLCJ based video player for Jetpack Compose Desktop (no Swing Panel)
Install / Use
/learn @rjuszczyk/ComposeVideoPlayerREADME
ComposeVideoPlayer
VLCJ based video player for Jetpack Compose Desktop (no Swing Panel)
This approach uses VLCJ Direct Rendering (https://capricasoftware.co.uk/projects/vlcj-4/tutorials/direct-rendering) and a custom CallbackVideoSurface.
Useage:
val videoPlayerState = rememberVideoPlayerState()
VideoPlayer(
mrl = "/Users/r.juszczyk/Movies/seaplane.mp4",
state = videoPlayerState,
)
LaunchedEffect(videoFile) {
videoPlayerState.doWithMediaPlayer { mediaPlayer ->
mediaPlayer.addOnTimeChangedListener(
object : OnTimeChangedListener {
override fun onTimeChanged(timeMillis: Long) {
}
}
)
}
}
Button(
onClick = {
videoPlayerState.doWithMediaPlayer { mediaPlayer -> mediaPlayer.pause() }
}
) {
Text("Pause")
}
Preview:
https://youtu.be/kAugr_j2wBE
Related Skills
docs-writer
99.4k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
339.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
arscontexta
2.9kClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.

