Skip to content

Initial Release v0.1.1: Advanced System Media Control Integration for Tauri Applications

Latest

Choose a tag to compare

@Taiizor Taiizor released this 08 Sep 14:19
· 6 commits to develop since this release

🚀 Initial Release: Tauri Plugin Media v0.1.1

We're thrilled to announce the first release of Tauri Plugin Media, a comprehensive system media control integration solution for Tauri applications. This plugin provides advanced media playback controls with seamless native OS integration across all desktop platforms.

Key Features

  • System Media Integration: Native OS media control interfaces (Windows SMTC, macOS MPNowPlayingInfoCenter, Linux MPRIS)
  • Rich Metadata Support: Display title, artist, album, artwork, and more in system controls
  • Cross-Platform Compatibility: Works seamlessly on Windows, macOS, and Linux
  • Media Key Support: Responds to keyboard media keys automatically
  • Playback Control: Full control suite including play, pause, stop, next, previous
  • Position Tracking: Real-time playback position updates and seeking
  • Shuffle & Repeat: Complete playback mode support with multiple repeat options
  • System Media Monitoring: Read and monitor media state from other applications
  • Multi-App Detection: Monitor media from Spotify, YouTube, VLC, Chrome, and more
  • Event Handling: Media control event callbacks for user interactions
  • Artwork Support: Display album art in system controls with URL or base64 data
  • Playback Rate Control: Variable speed playback support
  • Type Safety: Full TypeScript typings with comprehensive interfaces

Platform Implementation

Windows

  • Windows System Media Transport Controls (SMTC)
  • Timeline scrubbing support
  • Windows 10/11 media overlay integration
  • GlobalSystemMediaTransportControlsSessionManager support

macOS

  • MPNowPlayingInfoCenter and MPRemoteCommandCenter
  • Touch Bar support
  • Now Playing widget in Control Center
  • Lock screen controls

Linux

  • MPRIS2 specification via DBus
  • Compatible with GNOME, KDE, and other desktop environments
  • Works with media control applets and extensions

Getting Started

# Rust
cargo add tauri-plugin-media

# JavaScript/TypeScript
pnpm install tauri-plugin-media-api

Quick Setup

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_media::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}
import { mediaControls, PlaybackStatus } from 'tauri-plugin-media-api';

// Initialize media session
await mediaControls.initialize('my-app', 'My Music App');

// Update now playing
await mediaControls.updateNowPlaying(
  {
    title: 'Song Title',
    artist: 'Artist Name',
    album: 'Album Name',
    duration: 240,
    artworkUrl: 'https://example.com/artwork.jpg'
  },
  {
    status: PlaybackStatus.Playing,
    position: 0
  }
);

Example Application

A comprehensive example application is included in examples/tauri-app featuring:

  • Full-featured media player with playlist support
  • Interactive testing of all API methods
  • Real-time system media state monitoring
  • Event handling demonstration
  • Modern multi-page interface

For documentation, examples, and API reference, please refer to the README.md file.

Full Changelog: https://github.com/Taiizor/tauri-plugin-media/commits/v0.1.1