Skip to content

Cannot change playback volume via MPRIS/playerctl #871

@oliverlynch

Description

@oliverlynch

Preflight Checklist

  • I agree to follow the Code of Conduct that this project adheres to.
  • I have searched the issue tracker for a bug report that matches the one I want to file, without success.
  • I have checked that the correct behavior occurs on Apple Music Web (if applicable).
  • I have verified that my issue is with a supported version and that it is with the desktop app (Support for other areas can be found in our Discord / on the appropriate repo).

How did you download Cider?

itch.io

Operating System

EndevourOS Linux 6.12.4

Commit Hash

75f5a54d6018d10c963cd5d8c7aad2afd529fc73

Build Timestamp

1734728910680

Describe the Bug

In previous versions of cider (2.5.x), it was possible to change the playback volume via MPRIS with playerctl,
e.g. playerctl volume 0.5 would set the volume to 50%, or playerctl volume 0.1+ would increase the volume by 10%.

This no longer seems to work on the current version (2.6.0.2 AppImage).

Other MPRIS features such as play/pause and seek work correctly.
playerctl can correctly read the current volume set in the UI with playerctl volume.

Steps to Reproduce

While Cider is open, run playerctl volume 0.5 or playerctl --player=cider volume 0.5.

Anything else?

Cider's console output triggered by running the playerctl command:

(node:61190) UnhandledPromiseRejectionWarning: Error: Script failed to execute, this normally means an error was thrown. Check the renderer console for the error.
    at node:electron/js2c/renderer_init:2:16600
    at IpcRendererInternal.<anonymous> (node:electron/js2c/renderer_init:2:10905)
    at IpcRendererInternal.emit (node:events:518:28)
    at Object.onMessage (node:electron/js2c/renderer_init:2:8918)
(node:61190) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

Edit: Error from in-app developer console

Uncaught TypeError: window.CiderApp.RPC.setVolume is not a function
    at <anonymous>:1:21
window.CiderApp.RPC.setVolume(0.10363)

Looks like volume(e) is defined but setVolume(e) is being called instead.

I can provide other logs if required, although the in-app report button/open logs buttons don't seem to work for me...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Completed 🚀

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions