Skip to main content

Constants

React Track Player Web provides several constants for player states, events, capabilities, and repeat modes.

State

Enum representing the different states the player can be in.

import { State } from "react-track-player-web"
ConstantDescription
State.NonePlayer is not initialized
State.ReadyPlayer is ready but not playing
State.PlayingAudio is playing
State.PausedPlayback is paused
State.StoppedPlayback is stopped (at start position)
State.BufferingPlayer is buffering audio
State.ErrorAn error occurred

Example

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

// Check if player is currently playing
if (TrackPlayer.getPlaybackState() === State.Playing) {
console.log("Music is playing!")
}

Event

Enum representing the different events that can be emitted by the player.

import { Event } from "react-track-player-web"
ConstantDescriptionEvent Data
Event.PlaybackStateFired when the playback state changes{ state: State }
Event.PlaybackTrackChangedFired when the current track changes{ prevTrack: number, nextTrack: number }
Event.PlaybackProgressUpdatedFired periodically with position updates{ position: number, duration: number, buffered: number }
Event.PlaybackErrorFired when an error occurs during playback{ error: string }
Event.PlaybackQueueEndedFired when playback reaches the end of the queue{}
Event.PlaybackMetadataReceivedFired when track metadata is updated{ track: number, metadata: object }

Example

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

// Listen for playback errors
TrackPlayer.addEventListener(Event.PlaybackError, (data) => {
console.error("Playback error:", data.error)
})

Capability

Enum representing the different capabilities that can be enabled for the player.

import { Capability } from "react-track-player-web"
ConstantDescription
Capability.PlayEnable play functionality
Capability.PauseEnable pause functionality
Capability.StopEnable stop functionality
Capability.SkipEnable skip to any track in the queue
Capability.SkipToNextEnable skip to next track
Capability.SkipToPreviousEnable skip to previous track
Capability.SeekToEnable seeking to position
Capability.SeekByEnable seeking forward or backward by a relative amount of time
Capability.SetVolumeEnable volume control
Capability.SetRateEnable playback rate control

Example

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

// Setup player with specific capabilities
await TrackPlayer.setupPlayer({
capabilities: [
Capability.Play,
Capability.Pause,
Capability.SkipToNext,
Capability.SkipToPrevious,
Capability.SeekTo
]
})

RepeatMode

Enum representing the different repeat modes for playback.

import { RepeatMode } from "react-track-player-web"
ConstantDescription
RepeatMode.OffNo repeat, play through queue once
RepeatMode.TrackRepeat the current track
RepeatMode.QueueRepeat the entire queue

Example

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

// Set player to repeat the current track
await TrackPlayer.setRepeatMode(RepeatMode.Track)

// Check current repeat mode
const currentMode = TrackPlayer.getRepeatMode()
if (currentMode === RepeatMode.Queue) {
console.log("Player is set to repeat the entire queue")
}

EqualizerFrequency

Type representing the standard 10-band equalizer frequencies in Hz.

import { EqualizerFrequency } from "react-track-player-web"
FrequencyBand Description
32Sub-bass
64Bass
125Low mids
250Midrange
500Upper mids
1000Presence
2000Upper presence
4000Brilliance
8000Treble
16000Air

Example

// Get all available frequencies
const frequencies = [32, 64, 125, 250, 500, 1000, 2000, 4000, 8000, 16000]

// Set gain for specific frequency
TrackPlayer.setEqualizerBandGain(0, 4) // Set 32Hz band to +4dB

EqualizerPreset

Type representing predefined equalizer configurations for different music genres.

import { EqualizerPreset } from "react-track-player-web"
PresetDescription
"flat"No adjustments (0dB on all bands)
"rock"Enhanced bass and treble for rock music
"pop"Balanced with slight bass and treble boost
"jazz"Smooth mid-range emphasis
"classical"Natural sound with subtle enhancements
"electronic"Heavy bass and crisp highs for electronic music
"vocal"Mid-range boost for vocal clarity
"bass"Heavy low-frequency emphasis
"treble"High-frequency emphasis

Example

// Apply different presets
await TrackPlayer.setEqualizerPreset("rock")
await TrackPlayer.setEqualizerPreset("jazz")
await TrackPlayer.setEqualizerPreset("flat") // Reset to flat response