Playback
All playback methods are synchronous — they return immediately, no await needed. Native state updates surface through events.
Basic controls
TrackPlayer.play();
TrackPlayer.pause();
TrackPlayer.stop(); stop() halts playback and resets position. pause() retains position.
Seeking
TrackPlayer.seekTo(30); // jump to 30 seconds
TrackPlayer.seekBy(10); // forward 10s
TrackPlayer.seekBy(-10); // back 10s Skipping
TrackPlayer.skipToNext();
TrackPlayer.skipToPrevious(); // restarts the current item if past ~3s
TrackPlayer.skipToIndex(2); // zero-based Speed and volume
TrackPlayer.setPlaybackSpeed(1.5); // 1.0 = normal
TrackPlayer.setVolume(0.8); // 0.0 – 1.0 Repeat mode
Available values: RepeatMode.Off, RepeatMode.One, RepeatMode.All.
import { RepeatMode } from '@rntp/player';
TrackPlayer.setRepeatMode(RepeatMode.One); // repeat current track
TrackPlayer.setRepeatMode(RepeatMode.All); // repeat queue
TrackPlayer.setRepeatMode(RepeatMode.Off); // no repeat Shuffle
TrackPlayer.setShuffleEnabled(true);
TrackPlayer.setShuffleEnabled(false); Sleep timer
Set a countdown timer that pauses playback after a duration. The timer uses wall clock time — it keeps counting even if playback is paused.
// Pause after 30 minutes
TrackPlayer.sleepAfterTime(30 * 60);
// Pause after 30 minutes with a 30-second volume fade-out
TrackPlayer.sleepAfterTime(30 * 60, { fadeOutSeconds: 30 }); You can also pause after a specific track finishes:
TrackPlayer.sleepAfterMediaItemAtIndex(); // after the current track ends
TrackPlayer.sleepAfterMediaItemAtIndex(5); // after the track at index 5 ends Only one sleep timer can be active at a time — setting a new one cancels the previous.
TrackPlayer.cancelSleepTimer(); If a volume fade is in progress, cancelling restores the original volume immediately.
fadeOutSeconds is only available with sleepAfterTime. The media-item-based timer has no fade-out since the remaining time is unknown. If fadeOutSeconds exceeds the timer duration, it is clamped to fit.Error recovery
If a track fails to load, the player enters an error state. Call retry() to re-attempt:
TrackPlayer.retry(); Background playback
Background playback is enabled automatically when you configure the UIBackgroundModes capability in iOS and set up a background event handler.
The player continues running when:
- The app is backgrounded
- The screen is turned off
- The user switches apps
No additional configuration is needed beyond the Installation setup.
Remote controls
Remote controls (lock screen, notification, headphone buttons, Bluetooth) are handled via the background event handler registered with registerBackgroundEventHandler.
See Quick Start for the full example.
Customize which controls are visible with setCommands. See Player Setup.