tauri-plugin-media-session 0.1.0

Tauri plugin for Android media session integration with MediaStyle notification, lockscreen controls, and album art.
docs.rs failed to build tauri-plugin-media-session-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

tauri-plugin-media-session

A Tauri 2 plugin for Android media session integration. Displays a MediaStyle notification with lockscreen controls, album artwork, and transport buttons (play/pause/next/previous).

Features

  • Android MediaStyle notification with play/pause/skip controls
  • Lockscreen and notification shade media controls
  • Album artwork support (downloaded async from URL)
  • Runtime POST_NOTIFICATIONS permission request (Android 13+)
  • Event-based media action callbacks to JavaScript

Installation

Cargo.toml

[target.'cfg(target_os = "android")'.dependencies]
tauri-plugin-media-session = "0.1"

Rust setup

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_media_session::init())
        .run(tauri::generate_context!())
        .expect("error while running application");
}

Tauri capability

Add to your capability JSON:

{
  "permissions": ["media-session:default"]
}

JavaScript API

Update media state

await window.__TAURI__.core.invoke('plugin:media-session|update_state', {
  title: 'Song Title',
  artist: 'Artist Name',
  album: 'Album Name',
  artworkUrl: 'https://example.com/cover.jpg',
  duration: 240.0,
  position: 30.0,
  isPlaying: true,
  canPrev: true,
  canNext: true,
});

Listen for media actions

window.__TAURI__.core.addPluginListener('media-session', 'media_action', (event) => {
  const action = event.payload.action; // 'play' | 'pause' | 'next' | 'previous' | 'toggle'
});

Clear session

await window.__TAURI__.core.invoke('plugin:media-session|clear');

License

MIT OR Apache-2.0