AudioTracker

Headless audio library with Media Session API support

Interactive Demo

Checking Media Session API...
Album Art
Phonk Track
Demo Audio
0:00 0:00
Volume
75
Speed
Options
Ready
Buffer
0%
Current
0:00
Remaining
0:00
Volume
75

Installation

npm install audio-tracker

Usage Example

import AudioTracker from 'audio-tracker';

// Initialize with options
const tracker = new AudioTracker('audio.mp3', {
  volume: 75,
  preload: 'auto',
  mediaSession: {
    title: 'Song Title',
    artist: 'Artist Name',
    artwork: [{ src: 'cover.jpg', sizes: '512x512' }]
  }
});

// Setup callbacks
tracker.init({
  onPlay: () => console.log('Playing'),
  onPause: () => console.log('Paused'),
  onTimeUpdate: (time) => {
    // Update UI with current time
    const progress = (time / tracker.getDuration()) * 100;
    progressBar.style.width = `${progress}%`;
  },
  onBufferPercentageChange: (percent) => {
    bufferBar.style.width = `${percent}%`;
  },
  onError: (error) => console.error('Error:', error)
});

// Playback controls
await tracker.play();
tracker.pause();
tracker.seekTo(30);              // Jump to 30s
tracker.forward(10);             // Skip forward 10s
tracker.backward(10);            // Skip backward 10s

// Volume & speed
tracker.setVolume(80);           // 0-100
tracker.setPlaybackRate(1.5);    // 0.25-4.0
tracker.toggleMute();

// Get state
tracker.isPlaying();             // boolean
tracker.getCurrentTime();        // seconds
tracker.getDuration();           // seconds
tracker.formatTime(125);         // "2:05"

// Cleanup (important!)
tracker.destroy();