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

オープン
#522 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
android, kotlin
領域
mobile

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Kotlin
スター
933
フォーク
104
平均マージ
23時間 18分
マージ済み PR(30日)
13

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

FossifyOrg/Music-Player のほかの issue

FossifyOrg/Music-Player の issue をすべて見る

似ている issue

Kotlin の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。