SkillAgentSearch skills...

ComposeVideoPlayer

VLCJ based video player for Jetpack Compose Desktop (no Swing Panel)

Install / Use

/learn @rjuszczyk/ComposeVideoPlayer
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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:

Screenshot

https://youtu.be/kAugr_j2wBE

Related Skills

View on GitHub
GitHub Stars25
CategoryContent
Updated7mo ago
Forks3

Languages

Kotlin

Security Score

67/100

Audited on Aug 21, 2025

No findings