Player

Allows for playback and queue control

xl.player.PLAYER = None

The player singleton of ExailePlayer for playback control

ExailePlayer.play(track, **kwargs)

Starts the playback with the provided track or stops the playback it immediately if none

Parameters:track (xl.trax.Track) – the track to play

Note

The following events will be emitted by this method:

  • playback_player_start: indicates the start of playback overall
  • playback_track_start: indicates playback start of a track
ExailePlayer.stop(_fire=True, **kwargs)

Stops the playback

Parameters:fire – Send the ‘playback_player_end’ event. Used by engines to avoid spurious playback_end events. Not public API.

Note

The following events will be emitted by this method:

  • playback_player_end: indicates the end of playback overall
  • playback_track_end: indicates playback end of a track
ExailePlayer.pause()

Pauses the playback, does not toggle it

Note

The following events will be emitted by this method:

  • playback_player_pause: indicates that the playback has been paused
ExailePlayer.unpause()

Resumes the playback, does not toggle it

Note

The following events will be emitted by this method:

  • playback_player_resume: indicates that the playback has been resumed
ExailePlayer.toggle_pause()

Toggles between playing and paused state

Note

The following events will be emitted by this method:

  • playback_toggle_pause: indicates that the playback has been paused or resumed
ExailePlayer.seek(value)

Seek to a position in the currently playing stream

Parameters:value (int) – the position in seconds
ExailePlayer.get_position()

Gets the current playback position of the playing track

Returns:the playback position in nanoseconds
Return type:int
ExailePlayer.get_time()

Gets the current playback time

Returns:the playback time in seconds
Return type:int
ExailePlayer.get_progress()

Gets the current playback progress

Returns:the playback progress as [0..1]
Return type:float
ExailePlayer.set_progress(progress)

Seeks to the progress position

Parameters:progress (float) – value ranged at [0..1]
ExailePlayer.get_volume()

Gets the current volume

Returns:the volume percentage
Type:int
ExailePlayer.set_volume(volume)

Sets the current volume

Parameters:volume (int) – the volume percentage
ExailePlayer.get_state()

Gets the player state

Returns:one of playing, paused or stopped
Return type:string
ExailePlayer.is_playing()

Convenience method to find out if the player is currently playing

Returns:whether the player is currently playing
Return type:bool
ExailePlayer.is_paused()

Convenience method to find out if the player is currently paused

Returns:whether the player is currently paused
Return type:bool
ExailePlayer.is_stopped()

Convenience method to find out if the player is currently stopped

Returns:whether the player is currently stopped
Return type:bool
xl.player.QUEUE = <xl.player.queue.PlayQueue object>

Manages the queue of songs to be played

The content of the queue are processed before processing the content of the assigned playlist.

When the remove_item_when_played option is enabled, the queue removes items from itself as they are played.

When not enabled, the queue acts like a regular playlist, and moves the position as tracks are played.

In this mode, when a new track is queued, the position is set to play that track, and play will continue with that track until the queue is exhausted, and then the assigned playlist will be continued.

The queue singleton of PlayQueue

class xl.player.queue.PlayQueue(player, name, location=None)

Bases: xl.playlist.Playlist

Manages the queue of songs to be played

The content of the queue are processed before processing the content of the assigned playlist.

When the remove_item_when_played option is enabled, the queue removes items from itself as they are played.

When not enabled, the queue acts like a regular playlist, and moves the position as tracks are played.

In this mode, when a new track is queued, the position is set to play that track, and play will continue with that track until the queue is exhausted, and then the assigned playlist will be continued.

get_current()

Gets the current track

Returns:the current track
Type:xl.trax.Track
get_current_position()

Retrieves the current position within the playlist

Returns:the position
Return type:int
get_next()

Retrieves the next track that will be played. Does not actually set the position. When you call next(), it should return the same track.

This exists to support retrieving a track before it actually needs to be played, such as for pre-buffering.

Returns:the next track to be played
Return type:xl.trax.Track or None
is_play_enabled()
Returns:True when calling play() will have no effect
next(autoplay=True, track=None)

Goes to the next track, either in the queue, or in the current playlist. If a track is passed in, that track is played

Parameters:
  • autoplay (bool) – play the track in addition to returning it
  • track (xl.trax.Track) – if passed, play this track

Note

The following events will be emitted by this method:

  • playback_playlist_end: indicates that the end of the queue has been reached
play(track=None)

Starts queue processing with the given track preceding the queue content

Parameters:track (xl.trax.Track) – the track to play
prev()

Goes to the previous track

queue_length()

Returns the number of tracks left to play in the queue’s internal playlist.

set_current_playlist(playlist)

Sets the playlist to be processed in the queue

Parameters:playlist (xl.playlist.Playlist) – the playlist to process

Note

The following events will be emitted by this method:

  • queue_current_playlist_changed: indicates that the queue playlist has been changed
set_current_position(position)

Sets the current position within the playlist

Parameters:position (int) – the new position
current_playlist

The playlist currently processed in the queue