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)