UNPKG

tauri-plugin-media-api

Version:

Advanced system media control integration plugin for Tauri applications with comprehensive playback controls, rich metadata support, and seamless native OS media interface integration across Windows, macOS, and Linux

79 lines (78 loc) 2.77 kB
export interface MediaMetadata { title: string; artist?: string; album?: string; albumArtist?: string; duration?: number; artworkUrl?: string; artworkData?: string; } export declare enum PlaybackStatus { Playing = "playing", Paused = "paused", Stopped = "stopped" } export declare enum RepeatMode { None = "none", Track = "track", List = "list" } export interface PlaybackInfo { status: PlaybackStatus; position: number; shuffle: boolean; repeatMode: RepeatMode; playbackRate: number; } export declare enum MediaControlEventType { Play = "play", Pause = "pause", PlayPause = "playPause", Stop = "stop", Next = "next", Previous = "previous", FastForward = "fastForward", Rewind = "rewind", SeekTo = "seekTo", SetPosition = "setPosition", SetPlaybackRate = "setPlaybackRate" } export interface MediaControlEvent { eventType: MediaControlEventType; timestamp: number; data?: any; } export declare function initializeSession(appId: string, appName: string): Promise<void>; export declare function setMetadata(metadata: MediaMetadata): Promise<void>; export declare function setPlaybackInfo(info: PlaybackInfo): Promise<void>; export declare function setPlaybackStatus(status: PlaybackStatus): Promise<void>; export declare function setPosition(position: number): Promise<void>; export declare function clearMetadata(): Promise<void>; export declare function getMetadata(): Promise<MediaMetadata | null>; export declare function getPlaybackInfo(): Promise<PlaybackInfo | null>; export declare function getPlaybackStatus(): Promise<PlaybackStatus>; export declare function getPosition(): Promise<number>; export declare function isEnabled(): Promise<boolean>; export declare class MediaControls { private initialized; initialize(appId: string, appName: string): Promise<void>; updateNowPlaying(metadata: MediaMetadata, info?: Partial<PlaybackInfo>): Promise<void>; play(): Promise<void>; pause(): Promise<void>; stop(): Promise<void>; togglePlayPause(): Promise<void>; next(): Promise<void>; previous(): Promise<void>; setPosition(position: number): Promise<void>; updatePosition(position: number): Promise<void>; updatePlaybackStatus(status: PlaybackStatus): Promise<void>; clearNowPlaying(): Promise<void>; getMetadata(): Promise<MediaMetadata | null>; getPlaybackInfo(): Promise<PlaybackInfo | null>; getPlaybackStatus(): Promise<PlaybackStatus>; getPosition(): Promise<number>; isEnabled(): Promise<boolean>; setEventHandler(handler: ((event: MediaControlEvent) => void) | null): void; clear(): Promise<void>; } export declare const mediaControls: MediaControls;