
Library enables system media session management, providing functionality to handle media playback, seek operations, and metadata setting. Supports asynchronous session activation and customizable callbacks.
A Kotlin Multiplatform library for emitting a system media session.
Windows implementation adapted from JavaMediaTransportControls by Selemba1000.
mediasession-kt currently supports the following Kotlin platforms:
repositories {
mavenCentral()
}
<version> with the desired mediasession-kt version)implementation("dev.toastbits:mediasession:<version>")
var time = TimeSource.Monotonic.markNow()
// Initialise the media session
val session: MediaSession =
MediaSession.create(
getPositionMs = { time.elapsedNow().inWholeMilliseconds }
)!!
// Set callbacks
session.onPlay = {
println("onPlay called")
}
session.onSeek = { by_ms: Long ->
println("onSeek called")
}
// Set properties
session.setIdentity("mediasession.sample")
session.setPlaybackStatus(MediaSessionPlaybackStatus.PAUSED)
session.setMetadata(
MediaSessionMetadata(
title = "Title",
)
)
// Enable session (asynchronous)
session.setEnabled(true)
A Kotlin Multiplatform library for emitting a system media session.
Windows implementation adapted from JavaMediaTransportControls by Selemba1000.
mediasession-kt currently supports the following Kotlin platforms:
repositories {
mavenCentral()
}
<version> with the desired mediasession-kt version)implementation("dev.toastbits:mediasession:<version>")
var time = TimeSource.Monotonic.markNow()
// Initialise the media session
val session: MediaSession =
MediaSession.create(
getPositionMs = { time.elapsedNow().inWholeMilliseconds }
)!!
// Set callbacks
session.onPlay = {
println("onPlay called")
}
session.onSeek = { by_ms: Long ->
println("onSeek called")
}
// Set properties
session.setIdentity("mediasession.sample")
session.setPlaybackStatus(MediaSessionPlaybackStatus.PAUSED)
session.setMetadata(
MediaSessionMetadata(
title = "Title",
)
)
// Enable session (asynchronous)
session.setEnabled(true)