Playback Controls
TheusePlaylistControls hook provides methods to control audio playback in your playlist.
Basic Usage
Core Playback Methods
play(startTime?, playDuration?)
Start audio playback from a specific time:packages/browser/src/WaveformPlaylistContext.tsx:101
pause()
Pause playback at current position:packages/browser/src/WaveformPlaylistContext.tsx:102
stop()
Stop playback and return to start:packages/browser/src/WaveformPlaylistContext.tsx:103
setCurrentTime(time)
Seek to a specific time without affecting playback state:packages/browser/src/WaveformPlaylistContext.tsx:105
Pre-built Control Components
Use ready-made button components:packages/browser/src/components/PlaybackControls.tsx
PlayButton Implementation
ThePlayButton handles selection playback automatically:
packages/browser/src/components/PlaybackControls.tsx:10-34
Custom Skip Buttons
packages/browser/src/components/PlaybackControls.tsx:97-118
Playback State
Monitor playback state withusePlaybackAnimation:
packages/browser/src/WaveformPlaylistContext.tsx:72-81
Example: Play/Pause Toggle
Selection Playback
Play only the selected region:Loop Controls
Enable looping for a region:packages/browser/src/components/PlaybackControls.tsx:144-203
Important Notes
play()returns a Promise that resolves when audio context is ready- Use
currentTimeRef.currentfor RAF-based animations (avoids state updates) - Transport loop handles boundaries automatically when
isLoopEnabledis true - Selection playback disables Transport loop to play once and stop
Next Steps
- Keyboard Shortcuts - Add keyboard controls
- Zoom Controls - Control waveform zoom
- Export WAV - Export audio to WAV format