Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • os-mockups os-mockups
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 92
    • Issues 92
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Teams
  • DesignDesign
  • os-mockupsos-mockups
  • Issues
  • #215

Extended shell media controls

We discussed this a bit at the Berlin GNOME Mobile hackfest. The takeaway was that apps have pretty diverse use cases and needs, making it hard to show useful controls without knowing a bit more about the content/context/type of app.

Types of use cases:

  • Short video
  • Movie
  • TV Show with multiple episodes
  • Podcast
  • Live Stream (audio or video)
  • Music
  • Voice Message
  • Audio Books
  • Presentations (MPRIS prev/next buttons)

Some examples of custom layouts on Android 13:

image

Features:

  • Title
  • Subtitle
  • Album cover
  • Jump +10s
  • Next/prev track
  • Interactive progress bar
  • Non-interactive progress bar

Other features apps may want buttons for/have buttons for on other platforms:

  • Skip chapter
  • Landscape cover for videos
  • Add tracks to favorites
  • Set 1.5/2x speed
  • Interactive seek bar
  • Non-interactive progress bar
  • Presentation app (e.g. no play button?)
  • Buffering state for live stream?
  • Record stream?
  • Adaptive speed?
  • AI skip to beginning of sentence?
  • AI skip ad?

Potential approaches:

  • Special case specific use cases (music, podcasts, etc.), apps can specify which they want
  • Allow apps to specify exactly which buttons they want

Proposal for a path forward we discussed at the hackfest:

  • Apps request which of the default buttons they want
    • Pause/Play
    • Next/previous track
    • Skip forward/back (app can specify how many seconds)
  • Maybe apps should be able to customize icons for default stuff (e.g. custom icon with skip interval on it?)
  • Apps can define custom buttons with custom icons for edge case-y stuff
    • The shell sends an mpris call to the application once a custom button was pressed
  • Default stuff like play/pause has to be supported
  • Shell defines the precise button layout, but maybe apps can provide layout hints in addition to buttons?
Edited Jun 07, 2023 by Tobias Bernard
Assignee
Assign to
Time tracking