# TrackPlayer

## sound TrackPlayer

This class handles the playback of sound tracks.

## Constructor

#### new TrackPlayer(options)

Source:
  - sound/TrackPlayer.js, line 19
To Do:
  - stopTime is currently not implemented (tracks will play from startTime to finish)
  - stereo is currently not implemented

##### Parameters:

Name | Type | Description
--- | --- | ---

`options`

Object

###### Properties

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`psychoJS` | module:core.PsychoJS |  |  | the PsychoJS instance
`howl` | Object |  |  | the sound object (see https://howlerjs.com/)
`startTime` | number | <optional> | `0` | start of playback (in seconds)
`stopTime` | number | <optional> | `-1` | end of playback (in seconds)
`stereo` | boolean | <optional> | `true` | whether or not to play the sound or track in stereo
`volume` | number | <optional> | `1.0` | volume of the sound (must be between 0 and 1.0)
`loops` | number | <optional> | `0` | how many times to repeat the track or tone after it has played

### Extends

- SoundPlayer

### Methods

#### (static) accept(sound) → {Object|undefined}

Source:
  - sound/TrackPlayer.js, line 61

Determine whether this player can play the given sound.

##### Parameters:

Name | Type | Description
--- | --- | ---
`sound` | module:sound.Sound | the sound, which should be the name of an audio resource file

##### Returns:

an instance of TrackPlayer that can play the given track or undefined otherwise

Type
  Object | undefined

#### getDuration() → {number}

Source:
  - sound/TrackPlayer.js, line 92
Overrides:
  - SoundPlayer#getDuration

Get the duration of the sound, in seconds.

##### Returns:

the duration of the track, in seconds

Type
  number

#### play(loops, fadeDurationopt)

Source:
  - sound/TrackPlayer.js, line 151
Overrides:
  - SoundPlayer#play

Start playing the sound.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`loops` | number |  |  | how many times to repeat the track after it has played once. If loops == -1, the track will repeat indefinitely until stopped.
`fadeDuration` | number | <optional> | `17` | how long should the fading in last in ms

#### setDuration(duration_s)

Source:
  - sound/TrackPlayer.js, line 102
Overrides:
  - SoundPlayer#setDuration

Set the duration of the track.

##### Parameters:

Name | Type | Description
--- | --- | ---
`duration_s` | number | the duration of the track in seconds

#### setLoops(loops)

Source:
  - sound/TrackPlayer.js, line 130
Overrides:
  - SoundPlayer#setLoops

Set the number of loops.

##### Parameters:

Name | Type | Description
--- | --- | ---
`loops` | number | how many times to repeat the track after it has played once. If loops == -1, the track will repeat indefinitely until stopped.

#### setVolume(volume, muteopt)

Source:
  - sound/TrackPlayer.js, line 117
Overrides:
  - SoundPlayer#setVolume

Set the volume of the tone.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`volume` | Integer |  |  | the volume of the track (must be between 0 and 1.0)
`mute` | boolean | <optional> | `false` | whether or not to mute the track

#### stop(fadeDurationopt)

Source:
  - sound/TrackPlayer.js, line 188
Overrides:
  - SoundPlayer#stop

Stop playing the sound immediately.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`fadeDuration` | number | <optional> | `17` | how long should the fading out last in ms