Skip to main content

Player

These functions control audio playback, including play/pause control, seeking, volume adjustment, and retrieving information about the current state.

Playback Control​

play​

Starts or resumes playback of the current track.

await TrackPlayer.play(): Promise<void>

Example​

// Start or resume playback
await TrackPlayer.play()

pause​

Pauses playback of the current track.

await TrackPlayer.pause(): Promise<void>

Example​

// Pause playback
await TrackPlayer.pause()

stop​

Stops playback and resets the position to the beginning of the track.

await TrackPlayer.stop(): Promise<void>

Example​

// Stop playback completely
await TrackPlayer.stop()

skip​

Skips to the track at the specified index.

await TrackPlayer.skip(index: number): Promise<void>

Parameters​

ParameterTypeRequiredDescription
indexnumberYesIndex of the track to skip to (0-based)

Example​

// Skip to the third track (index 2)
await TrackPlayer.skip(2)

skipToNext​

Skips to the next track in the queue.

await TrackPlayer.skipToNext(): Promise<void>

Example​

// Skip to the next track
await TrackPlayer.skipToNext()

skipToPrevious​

Skips to the previous track in the queue.

await TrackPlayer.skipToPrevious(): Promise<void>

Example​

// Skip to the previous track
await TrackPlayer.skipToPrevious()

Position Control​

seekTo​

Seeks to a specific position in the current track.

await TrackPlayer.seekTo(position: number): Promise<void>

Parameters​

ParameterTypeRequiredDescription
positionnumberYesPosition to seek to in seconds

Example​

// Seek to 30 seconds into the track
await TrackPlayer.seekTo(30)

seekBy​

Seeks forward or backward relative to the current position.

await TrackPlayer.seekBy(offset: number): Promise<void>

Parameters​

ParameterTypeRequiredDescription
offsetnumberYesOffset in seconds (positive for forward, negative for backward)

Example​

// Seek 10 seconds forward
await TrackPlayer.seekBy(10)

// Seek 5 seconds backward
await TrackPlayer.seekBy(-5)

Audio Control​

setVolume​

Sets the playback volume.

await TrackPlayer.setVolume(volume: number): Promise<void>

Parameters​

ParameterTypeRequiredDescription
volumenumberYesVolume level from 0 (mute) to 1 (maximum)

Example​

// Set volume to 50%
await TrackPlayer.setVolume(0.5)

// Mute audio
await TrackPlayer.setVolume(0)

getVolume​

Gets the current volume level.

TrackPlayer.getVolume(): number

Return Value​

Returns a number between 0 and 1 representing the current volume level.

Example​

const currentVolume = TrackPlayer.getVolume()
console.log(`Current volume: ${currentVolume * 100}%`)

setRate​

Sets the playback rate (speed).

await TrackPlayer.setRate(rate: number): Promise<void>

Parameters​

ParameterTypeRequiredDescription
ratenumberYesPlayback rate from 0.25 to 2.0 (1.0 is normal speed)

Example​

// Play at double speed
await TrackPlayer.setRate(2.0)

// Play at half speed
await TrackPlayer.setRate(0.5)

// Reset to normal speed
await TrackPlayer.setRate(1.0)

getRate​

Gets the current playback rate.

TrackPlayer.getRate(): number

Return Value​

Returns a number representing the current playback rate (1.0 is normal speed).

Example​

const currentRate = TrackPlayer.getRate()
console.log(`Playing at ${currentRate}x speed`)

State and Position​

getPlaybackState​

Gets the current playback state.

TrackPlayer.getPlaybackState(): State

Return Value​

Returns one of the State constants.

Example​

import { State } from "react-track-player-web"

const state = TrackPlayer.getPlaybackState()
if (state === State.Playing) {
console.log("Track is currently playing")
} else if (state === State.Paused) {
console.log("Track is paused")
}

getPosition​

Gets the current playback position in seconds.

TrackPlayer.getPosition(): number

Return Value​

Returns the current position in seconds.

Example​

const position = TrackPlayer.getPosition()
console.log(`Current position: ${Math.floor(position)} seconds`)

getDuration​

Gets the duration of the current track in seconds.

TrackPlayer.getDuration(): number

Return Value​

Returns the track duration in seconds, or 0 if unknown.

Example​

const duration = TrackPlayer.getDuration()
console.log(`Track duration: ${Math.floor(duration)} seconds`)

getBufferedPosition​

Gets the buffered position of the current track in seconds.

TrackPlayer.getBufferedPosition(): number

Return Value​

Returns the buffered position in seconds.

Example​

const buffered = TrackPlayer.getBufferedPosition()
console.log(`Buffered up to: ${Math.floor(buffered)} seconds`)

getProgress​

Gets comprehensive progress information including position, duration, and buffered status.

TrackPlayer.getProgress(): Progress

Return Value​

Returns a Progress object with the following properties:

{
position: number // Current position in seconds
duration: number // Track duration in seconds
buffered: number // Buffered position in seconds
}

Example​

const progress = TrackPlayer.getProgress()
console.log(
`Position: ${progress.position}s / ${progress.duration}s (${progress.buffered}s buffered)`
)

Repeat Mode​

setRepeatMode​

Sets the repeat mode for playback.

await TrackPlayer.setRepeatMode(mode: RepeatMode): Promise<void>

Parameters​

ParameterTypeRequiredDescription
modeRepeatModeYesThe repeat mode to set

Example​

import { RepeatMode } from "react-track-player-web"

// No repeat
await TrackPlayer.setRepeatMode(RepeatMode.Off)

// Repeat current track
await TrackPlayer.setRepeatMode(RepeatMode.Track)

// Repeat entire queue
await TrackPlayer.setRepeatMode(RepeatMode.Queue)

getRepeatMode​

Gets the current repeat mode.

TrackPlayer.getRepeatMode(): RepeatMode

Return Value​

Returns one of the RepeatMode constants.

Example​

import { RepeatMode } from "react-track-player-web"

const repeatMode = TrackPlayer.getRepeatMode()
if (repeatMode === RepeatMode.Track) {
console.log("Currently repeating this track")
} else if (repeatMode === RepeatMode.Queue) {
console.log("Repeating the entire queue")
} else {
console.log("Repeat is turned off")
}

Error Handling​

retry​

Retries playback of the current track after an error has occurred.

await TrackPlayer.retry(): Promise<void>

Example​

try {
// Some operation that might fail
await TrackPlayer.play()
} catch (error) {
console.error("Playback error:", error)

// Try to recover
try {
await TrackPlayer.retry()
console.log("Successfully recovered")
} catch (retryError) {
console.error("Failed to recover:", retryError)
}
}