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
Parameter | Type | Required | Description |
---|---|---|---|
index | number | Yes | Index 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
Parameter | Type | Required | Description |
---|---|---|---|
position | number | Yes | Position 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
Parameter | Type | Required | Description |
---|---|---|---|
offset | number | Yes | Offset 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
Parameter | Type | Required | Description |
---|---|---|---|
volume | number | Yes | Volume 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
Parameter | Type | Required | Description |
---|---|---|---|
rate | number | Yes | Playback 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
Parameter | Type | Required | Description |
---|---|---|---|
mode | RepeatMode | Yes | The 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)
}
}