audio_documentation.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from nicegui import ui
  2. from . import doc
  3. @doc.demo(ui.audio)
  4. def main_demo() -> None:
  5. a = ui.audio('https://cdn.pixabay.com/download/audio/2022/02/22/audio_d1718ab41b.mp3')
  6. a.on('ended', lambda _: ui.notify('Audio playback completed'))
  7. ui.button(on_click=lambda: a.props('muted'), icon='volume_off').props('outline')
  8. ui.button(on_click=lambda: a.props(remove='muted'), icon='volume_up').props('outline')
  9. @doc.demo('Control the audio element', '''
  10. This demo shows how to play, pause and seek programmatically.
  11. ''')
  12. def control_demo() -> None:
  13. a = ui.audio('https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3')
  14. ui.button('Play', on_click=a.play)
  15. ui.button('Pause', on_click=a.pause)
  16. ui.button('Jump to 0:30', on_click=lambda: a.seek(30))
  17. @doc.demo('Event subscription', '''
  18. This demo shows how to subscribe to some of the [available events](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio#events).
  19. ''')
  20. def event_demo() -> None:
  21. a = ui.audio('https://cdn.pixabay.com/download/audio/2022/02/22/audio_d1718ab41b.mp3')
  22. a.on('play', lambda _: ui.notify('Started'))
  23. a.on('pause', lambda _: ui.notify('Paused'))
  24. a.on('ended', lambda _: ui.notify('Completed'))
  25. doc.reference(ui.audio)