audio-tracker
Version:
A headless JavaScript library that gives you full control over web audio — playback, tracking, and Media Session integration made simple.
44 lines • 1.48 kB
TypeScript
/**
* Media Session module configuration options
*/
interface MediaSessionOptions {
title?: string;
artist?: string;
album?: string;
artwork?: MediaImage[];
}
/**
* Extended AudioTracker interface with Media Session module methods
*/
interface AudioTrackerWithMediaSession {
audio: HTMLAudioElement;
options: {
mediaSession?: MediaSessionOptions;
};
play: () => Promise<void>;
pause: () => void;
forward: (seconds?: number) => void;
backward: (seconds?: number) => void;
subscribe: (event: string, handler: () => void) => void;
unsubscribe: (event: string, handler: () => void) => void;
updateMediaSessionMetadata?: (metadata: MediaMetadataInit) => void;
}
/**
* Media Session module for AudioTracker
* Integrates with the browser's Media Session API to display playback controls in system UI
* @param tracker - AudioTracker instance to attach Media Session functionality
* @returns Cleanup function to remove Media Session handlers and metadata
* @example
* const tracker = new AudioTracker('audio.mp3', {
* mediaSession: {
* title: 'Song Title',
* artist: 'Artist Name',
* album: 'Album Name',
* artwork: [{ src: 'cover.jpg', sizes: '512x512', type: 'image/jpeg' }]
* }
* });
* tracker.use(mediaSessionModule);
*/
export declare function mediaSessionModule(tracker: AudioTrackerWithMediaSession): (() => void) | void;
export {};
//# sourceMappingURL=mediaSessionModule.d.ts.map