Configurable Musical Statues (Stop Dance) Mode with Dedicated Tab and Widget
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Kotlin
- Estrellas
- 933
- Forks
- 104
- Merge medio
- 23 h 18 min
- PR fusionados (30 d)
- 13
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FossifyOrg/Music-Player
-
feature request needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
FossifyOrg/Music-Player#515 ·
Los mantenedores suelen responder en 1 día
-
feature request needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
FossifyOrg/Music-Player#479 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
FossifyOrg/Music-Player#424 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
FossifyOrg/Music-Player#423 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Add info button on current playing fileQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertofeature request needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
FossifyOrg/Music-Player#29 · 13 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de FossifyOrg/Music-Player
Issues similares
-
[Submission] 招商银行Abiertosubmit-adaption submit-adaption-pre
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
BetterAndroid/android-notification-icon-project#848 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
"Tick" is confusingAbiertobug
Dificultad 1/5 1-3 horas Aptitud para principiantes 70/100
orgzly-revived/orgzly-android-revived#1132 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
commons-app/apps-android-commons#7275 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
liberation-data/drivine4j#682 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
developmentwithyash/yaan#14 ·
Los mantenedores suelen responder en 2 días