Headless audio library with Media Session API support
npm install audio-tracker
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();