Skip to main content

Media Session

This guide explains how to enable Media3 MediaSession support in your app.

Media3 MediaSession is part of the AndroidX Media3 library , which is the modern, Jetpack-based evolution of the older android.media.session.MediaSession framework.

It provides a standardized way to manage media playback controls , metadata , and remote interactions (like from Bluetooth headsets, Android Auto, Wear OS, or smart speakers) in Android apps that play audio or video — especially when using ExoPlayer .

1. Add Required Dependency

In your module-level build.gradle file:

build.gradle
dependencies {
implementation("androidx.media3:media3-session:1.5.1")
}

2. Register LuraMediaSessionService in Manifest

Add the following <service> inside the <application> tag in your AndroidManifest.xml:

AndroidManifest.xml
<service
android:name="com.akta.luraplayer.api.services.LuraMediaSessionService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
<intent-filter>
<action android:name="androidx.media3.session.MediaSessionService"/>
<action android:name="android.media.browse.MediaBrowserService"/>
</intent-filter>
</service>

🔒 exported="false" ensures that the service is only accessible within your app.

3. Configure MediaSession in Your App

MainActivity.kt
// Step 1: Create the MediaSession configuration
val mediaSessionConfiguration = LuraMediaSessionConfiguration(
enabled = true
)

// Step 2: Build the full Lura Configuration
val config = LuraConfiguration(
lura = Lura(
assetId = "YOUR_ASSET_ID",
appKey = "YOUR_APP_KEY"
),
controls = LuraControlsConfiguration(
mediaSession = mediaSessionConfiguration
)
)

// Step 3: Set the configuration to Lura Player
luraPlayer.setConfig(config)