import panel as pn
pn.extension()
The DiscretePlayer
widget displays media-player-like controls that allow playing and stepping through the provided options. When playing it triggers events at a pre-defined interval on the frontend, advancing the player value each time. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the AutocompleteInput
, Select
and DiscreteSlider
widgets.
For more information about listening to widget events and laying out widgets refer to the widgets user guide. Alternatively you can learn how to build GUIs by declaring parameters independently of any specific widgets in the param user guide. To express interactivity entirely using Javascript without the need for a Python server take a look at the links user guide.
For layout and styling related parameters see the customization user guide.
direction
(int): Current play direction of the Player (-1: playing in reverse,0: paused, 1: playing).
options
(list or dict): A list or dictionary of options to select fromvalue
(object): The current value; must be one of the option valuesdisabled
(boolean): Whether the widget is editableinterval
(int): Interval in milliseconds between updatesname
(str): The title of the widgetloop_policy
(str): Looping policy; must be one of 'once', 'loop', or 'reflect'show_loop_controls
(boolean): Whether radio buttons allowing to switch between loop policies options are shownThe widget has a number of buttons to go to the first or last value, step forward or backward, and play and pause the widget. It also provides control over the loop_policy
, which determines whether to play 'once', 'loop', or 'reflect'. Additionally -
and +
buttons slow down and speed up the player speed.
discrete_player = pn.widgets.DiscretePlayer(name='Discrete Player', options=[2, 4, 8, 16, 32, 64, 128], value=8, loop_policy='loop')
discrete_player
Like most other widgets, DiscretePlayer
has a value parameter that can be accessed or set:
discrete_player.value
The DiscretePlayer
can be controlled programmatically using the direction
parameter which has three possible states:
-1
: playing in reverse0
: paused1
: playingAlternatively it can be controlled via the .play
, .pause
and .reverse
methods:
import time
discrete_player.play()
time.sleep(2)
discrete_player.reverse()
time.sleep(2)
discrete_player.pause()
The DiscretePlayer
widget exposes a number of options which can be changed from both Python and Javascript. Try out the effect of these parameters interactively:
pn.Row(discrete_player.controls(jslink=True), discrete_player)