Initial Release v0.1.1: Advanced System Media Control Integration for Tauri Applications
Latest🚀 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-apiQuick 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