Skip to content

fb.player playback control

play()

Starts playback. If playback is paused, it resumes. Returns a BaseResponse.

javascript
await fb.player.play();

pause()

Pauses playback. Returns a BaseResponse.

javascript
await fb.player.pause();

stop()

Stops playback. Returns a BaseResponse.

javascript
await fb.player.stop();

next() / prev()

Starts the next or previous track. Both methods return a BaseResponse.

javascript
await fb.player.next();
await fb.player.prev();

seek(seconds)

Seeks to a position in the current track.

ParameterTypeDescription
secondsnumberTarget position in seconds
javascript
await fb.player.seek(90); // 1 minute 30 seconds

getVolume()

Returns the current linear volume, decibel volume, and mute state. volume is in the range 0..100.

javascript
const info = await fb.player.getVolume();
console.log(info.volume);   // 0-100
console.log(info.volumeDb); // -100..0 dB
console.log(info.muted);    // boolean

setVolume(volume)

Sets the linear volume.

ParameterTypeDescription
volumenumberLinear volume in the range 0..100
javascript
await fb.player.setVolume(80); // 80%
await fb.player.setVolume(0);  // Minimum linear volume

mute()

Mutes playback. Use fb.player.toggleMute() when the desired operation is a toggle.

javascript
await fb.player.mute();

toggle()

Toggles play/pause through playback.playOrPause. The response includes the post-toggle isPlaying state.

javascript
const r = await fb.player.toggle();
console.log(r.isPlaying ? 'Playing' : 'Paused');

random()

Starts a random track. Returns a BaseResponse.

javascript
await fb.player.random();

getState()

Returns { state, canSeek, canPause }.

javascript
const state = await fb.player.getState();
// state.state: 'playing' | 'paused' | 'stopped'

getCurrentTrack()

Returns the current TrackInfo, or null when no track is loaded.

FieldTypeDescription
title, artist, albumstringCore metadata
durationnumberDuration in seconds
pathstringOriginal foobar2000 path
absolutePathstring?Native absolute path when available
idstring?Canonical track identifier when available
subsongnumber?Subsong index
albumArtist, genre, datestring?Optional metadata
trackNumber, discNumbernumber?Optional track/disc numbers
fileSizenumber?File size in bytes
bitratenumber?Bitrate in kbps
sampleRatenumber?Sample rate in Hz
channelsnumber?Channel count
codecstring?Codec identifier
javascript
const track = await fb.player.getCurrentTrack();
if (track) {
    console.log(`${track.artist} - ${track.title} [${track.codec} ${track.bitrate}kbps]`);
}

getPosition()

Returns the current position and duration in seconds, plus path/subsong information when exposed by the host.

javascript
const pos = await fb.player.getPosition();
console.log(`${pos.position} / ${pos.duration}`);
// pos.subsong — subsong index
// pos.path — current source path

getOrder() / setOrder(order)

Gets or sets the playback order. setOrder() accepts either a numeric host order or a canonical PlaybackOrder string.

ValueName
0Default
1Repeat (playlist)
2Repeat (track)
3Random
4Shuffle (tracks)
5Shuffle (albums)
6Shuffle (directories)
javascript
const r = await fb.player.getOrder();
console.log(r.order, r.name); // 0, 'Default'
await fb.player.setOrder(2);  // Repeat track
await fb.player.setOrder('shuffle-albums');

getStopAfterCurrent() / setStopAfterCurrent(enabled)

Gets or sets stop-after-current.

javascript
const r = await fb.player.getStopAfterCurrent();
console.log(r.enabled); // false
await fb.player.setStopAfterCurrent(true);

getCurrentTrackIndex(includeTrackInfo?)

Returns { index, track? }. Pass true to request the optional track snapshot.

javascript
const r = await fb.player.getCurrentTrackIndex();
console.log(`Current item index: ${r.index}`);

playPath(path)

Starts playback from a path. CUE entries may use the host's subsong suffix format.

javascript
await fb.player.playPath('E:\\Music\\song.flac');

playPaths(paths, options?)

Adds and plays multiple paths. The second argument may be a numeric startIndex or { startIndex?, replace? }; replace: true clears the active playlist before insertion, while the default appends.

ParameterTypeDescription
pathsstring[]Absolute paths; entries may carry a `
optionsnumber | { startIndex?: number; replace?: boolean }Start offset or extended options
javascript
await fb.player.playPaths(paths, { startIndex: 2, replace: true });

volumeUp() / volumeDown()

Moves the volume up or down by one host-defined step.

javascript
await fb.player.volumeUp();
await fb.player.volumeDown();

SDK method stubs

This block completes SDK method coverage and may later be expanded with richer examples and guidance.

getPlayingPlaylist()

Signature: fb.player.getPlayingPlaylist(): Promise<{ playlist: number }>

ParameterTypeRequiredDescription
---No parameters

Returns the result of playback.getPlayingPlaylist.

javascript
const result = await fb.player.getPlayingPlaylist();

playPause()

Signature: fb.player.playPause(): Promise<PlaybackToggleResponse>

ParameterTypeRequiredDescription
---No parameters

Returns the result of playback.playPause.

javascript
const result = await fb.player.playPause();

toggleMute()

Signature: fb.player.toggleMute(): Promise<PlaybackToggleMuteResponse>

ParameterTypeRequiredDescription
---No parameters

Returns the result of playback.toggleMute.

javascript
const result = await fb.player.toggleMute();

toggleStopAfterCurrent()

Signature: fb.player.toggleStopAfterCurrent(): Promise<PlaybackStopAfterCurrentState>

ParameterTypeRequiredDescription
---No parameters

Returns the result of playback.toggleStopAfterCurrent.

javascript
const result = await fb.player.toggleStopAfterCurrent();