Skip to content

Media Plugin throws errors whenever no active media is present #6

@KaJe5380

Description

@KaJe5380

Describe the bug

Brought up in Issue StreamController/StreamController#169
When using the media plugin from the StreamController Store, having no active media present (playing or paused, does not matter) will cause errors and overall function with StreamController.

Buttons that don't even have media plugin actions on them will also be affected. The actions will still work, but the image rendering of said icon will fail.

If buttons are all blank from initial page render, and then media is brought in; icons will still not render. Changing pages to force an update does not seem to fix this either. Using the play / pause however will cause it render when active media is introduced.

Media players being stuff like:
Browser (I am personally using Vivaldi) and playing YouTube
Spotify (Music Streaming)
Strawberry or SwingMusic (for local audio files)

I don't believe this is a StreamDeck+ issue, and will also affect the other StreamDeck hardware (minus the foot-petal)

I want to throw in that StreamController will just crash either open or in background at times. I'm wondering if these errors can potentially lead to that? Though I don't have a 100% way to replicate the crashing, so take this last part with a grain of salt.

Steps to reproduce the behavior:

This happens on new instances of StreamController, and can be replicated both via systemboot (if option is selected), or by terminating the background process and re-opening.

  1. Terminate StreamController and it's background process (I personally use Btop)

  2. Having applications that play media that also include media controls be closed. (that can be used with media keyboard hotkeys, widgets, apis)

    • Having an application (like browser or media player) open without media selected
      Ex: Having browser on Google homepage does not need to be closed.
      Ex2: Having Strawberry open with a clear playlist will not be considered media and will still cause said issue
  3. Open a new instance of StreamController, either from it's desktop shortcut or via terminal with:

$ flatpak run com.core447.StreamController
  1. Now have user swap to a page with the media plugin binded to buttons

Expected behavior

I don't entirely know the expected behavior.
I've noticed that when no media is present, the play / pause button doesn't render. This seems to be expected
behavior?
However when no active media is present, the next track & previous track button still seem to render?

I'd prefer if instead we did something like KDE Plasma media widget? Where when no active media is happening, to just render a STOP square?
Media not present
image
Media present
image

What I expect would icons to still render. For it to not halt the other icons that aren't even associated with media plugin to render. For errors to not show within the console output.

Screenshots

This is what StreamController is showing
image

When the physical deck will also render (no desync).
Note: My volume knobs don't render, even though they aren't part of the media plugin
PXL_20240718_162510789

Here's how my "media" page on my deck is setup and supposed to look:
image
image
image
image
image
image
image

Additional context

Logs for this can be found here
900 lines would bloat this issue

My Linux system outputted from Fastfetch via Konsole:
image

If an active media was present on initial page render, then the icons will render.
However once an active media is no longer present, icons will still show but continue to throw errors within the console.

  • Basically redo steps, but have an active media that is paused, open new instance of StreamController, and swipe to media page

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Testing

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions