Configurable Musical Statues (Stop Dance) Mode with Dedicated Tab and Widget

Aperta
#522 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
android, kotlin
Ambito
mobile

Direzione di ricerca

Start by reading the contribution guidelines and tracing how the existing playback service controls the active queue, playback position, and background playback. Then inspect how the player exposes tabs, settings, and home screen widgets. Done means a configurable Stop Dance session can alternate playback and pauses, share state between the tab and widget, and stop without changing the queue or restarting playback.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature request needs triage
Checklist
  • I made sure that there are no existing issues - open or closed - to which I could contribute my information.
  • I made sure that there are no existing discussions - open or closed - to which I could contribute my information.
  • I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the request will be dismissed otherwise.
  • This issue contains only one feature request.
  • I have read and understood the contribution guidelines.
Feature description

I would like to propose a configurable "Musical Statues" (Stop Dance) mode for Fossify Music Player.

The feature would automatically alternate between music playback and pauses, making the app suitable for children's dance games and other activities requiring randomized music interruptions.

The mode should work independently of playlists and use the currently active playback queue.

1. Randomized music intervals
  • Configurable minimum playback duration in seconds.
  • Configurable maximum playback duration in seconds.
  • A new random playback duration is selected for every music phase.

For example, with a minimum of 15 seconds and a maximum of 40 seconds, the music would play for a randomly selected duration within that range before pausing.

2. Configurable pause duration
  • Configurable pause duration in seconds.
  • Optionally, support randomized pauses with configurable minimum and maximum durations.
  • Playback should actually be paused, rather than simply muted.
3. Playback behavior
  • After each pause, resume the same track at exactly the position where it was paused.
  • Continue alternating between music and pauses until the user stops Stop Dance mode.
  • When Stop Dance mode is stopped, pause music playback and preserve the current position.
  • Preserve the existing playback queue, track order and shuffle settings.
  • Allow the mode to work with playlists, albums, individual tracks and the normal playback queue.
4. Dedicated Stop Dance tab
  • Add a separate "Stop Dance" tab to the music player.
  • Allow users to show or hide this tab in the app settings.
  • Provide Start and Stop controls.
  • Provide access to playback and pause duration settings.
  • Show the current state: playing, paused or inactive.
5. Separate Android home screen widget
  • Provide a dedicated Stop Dance widget.
  • Allow users to start and stop the mode directly from the Android home screen.
  • Display the current mode status.
  • Display the configured playback and pause intervals.
  • Provide access to the settings.

The widget and the dedicated tab should control the same Stop Dance session.

6. Background playback
  • Continue the Stop Dance mode when the app is in the background or the screen is switched off.
  • Integrate with the existing playback service.
  • Respect Android audio focus and external playback interruptions.
  • Ensure that pending timers cannot restart playback after Stop Dance mode has been stopped.
Technical considerations

The feature should reuse the existing playback engine and media service rather than introducing a separate audio player.

Stop Dance mode should be entirely optional and should not affect normal playback when disabled.

Why do you want this feature?

Musical Statues (Stop Dance) is a popular children's activity in which participants dance while music is playing and must freeze when the music stops.

Currently, organizing this game typically requires another person to manually pause and restart the music, or a separate application designed specifically for the game.

A built-in Stop Dance mode would allow the game to run automatically using the user's existing music collection.

The randomized music intervals would make the game less predictable and more entertaining, while configurable pause durations would allow the difficulty and pace to be adapted to different age groups.

The feature would be particularly useful for:

  • Children's birthday parties and family activities.
  • Kindergarten and school activities.
  • Dance and movement games.
  • Group activities requiring intermittent music playback.

A dedicated Android widget would make the feature especially convenient, allowing users to control the game without repeatedly opening the music player.

Because the mode would work with any currently playing music, users would not need to create special playlists or reorganize their music collections.

An important advantage is that the same track resumes at the exact position where it was paused. This avoids interrupting songs unnecessarily and provides a more natural listening experience.

The feature could make Fossify Music Player more versatile while remaining fully optional for users who do not need it.

Additional information
Independence from other feature requests

This proposal is independent of the following playlist-related requests:

  • #520 – Custom playlist covers and descriptions
  • #521 – Configurable playlist launcher widget

The Stop Dance widget would be a separate widget with a different purpose and would not depend on either of these features.

Suggested implementation

The Stop Dance functionality could be managed by a dedicated controller integrated with the existing playback service.

Both the optional app tab and the Android widget would communicate with this controller to ensure consistent playback behavior and avoid conflicting timers.

The implementation should follow Fossify's existing architecture, user interface conventions and coding guidelines.

Contribution

I would be interested in helping implement this feature and contributing the changes through a pull request.

Feedback from the maintainers regarding the suitability of the feature, preferred user interface and technical implementation would be very welcome.

Lingua principale
Kotlin
Stelle
933
Fork
104
Merge medio
21h 40m
PR unite (30g)
14

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di FossifyOrg/Music-Player

Tutte le issue di FossifyOrg/Music-Player

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.