Discussion:
[frameworks-kmediaplayer] [Bug 391545] New: XF86AudioPlay no longer resumes play on spotify
(too old to reply)
Danny Auble
2018-03-07 21:06:48 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

Bug ID: 391545
Summary: XF86AudioPlay no longer resumes play on spotify
Product: frameworks-kmediaplayer
Version: 5.12.0
Platform: Other
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: general
Assignee: ***@kde.org
Reporter: ***@schedmd.com
CC: kdelibs-***@kde.org
Target Milestone: ---

After upgrading to KDE 5.12.3 I find my play key on my keyboard no longer
resumes play on spotify any more. It does pause still, just doesn't resume
play.

I have tested on amarok and both pause and play work as expected. It appear
the problem is only with spotify from my testing.

This used to work fine before the upgrade.

Sorry if this is the wrong product. It wasn't clear what the Media Player
widget controlling the play/pause button was under.
--
You are receiving this mail because:
You are watching all bug changes.
Kai Uwe Broulik
2018-03-13 07:40:29 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

Kai Uwe Broulik <***@privat.broulik.de> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |***@privat.broulik.de,
| |plasma-***@kde.org
Assignee|***@kde.org |***@privat.broulik.de
Target Milestone|--- |1.0
Product|frameworks-kmediaplayer |plasmashell
Component|general |Media Player
--
You are receiving this mail because:
You are watching all bug changes.
Kai Uwe Broulik
2018-03-13 07:40:42 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

Kai Uwe Broulik <***@privat.broulik.de> changed:

What |Removed |Added
----------------------------------------------------------------------------
Assignee|***@privat.broulik.de |***@kde.org
Version|5.12.0 |5.12.3
--
You are receiving this mail because:
You are watching all bug changes.
Friedrich W. H. Kossebau
2018-03-13 14:13:35 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #1 from Friedrich W. H. Kossebau <***@kde.org> ---
Hi, thanks for the report & sorry for having caused trouble for you by getting
slightly more strict about MPRIS usage.

By your report I for now suspect this might be a bug with Spotify's (or some
wrapper to it? no clue about spotify code) implementation of the MPRIS spec. I
do not have/use spotify myself, so cannot test.

This is what you can do to help with this problem:
On the commandline when spotify is running you can inspect its MPRIS
properties. Please tell what you get as results when spotify is not reacting as
expected.

# Find the D-Bus MPRIS service name of spotify
# Should return something like "org.mpris.MediaPlayer2.spotify"
qdbus | grep org.mpris.MediaPlayer2

# Assuming the name is "org.mpris.MediaPlayer2.spotify" (adapt if needed)
# now check the states of the properties "CanPlay" & "CanPause"
# (each qdbus call can also be done in one line, using multiline with \
# just because of this input field)
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPlay
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPause


The property query results ("true" or "false") should match what the MPRIS spec
requires for them giving the current state the spotify app is in. See
https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html#Property:CanPlay
. Especially important in the spec is this bit:
"Note that this is related to whether there is a "current track": the value
should not depend on whether the track is currently paused or playing. In fact,
if a track is currently playing (and CanControl is true), this should be true."

Chance is that this is not matched given your description. But for now just my
assumption.
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 15:19:15 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #2 from Danny Auble <***@schedmd.com> ---
Friedrich, thanks for the help!

qdbus | grep org.mpris.MediaPlayer2
org.mpris.MediaPlayer2.spotify

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPlay
true
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player CanPause
true

At this point it seems to be correct

Note even stranger, I have set up another hotkey to expressly call

dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify
/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

and that works just fine for both play and pause.

I have tried uninstalling and reinstalling spotify as well and that didn't
change the behavior. This just started with the update.

I also tried on a different machine and functionality seems to be correct
there, so this must be some sort of configuration issue. I have tried with a
completely new user on the bad system with the same bad results so the issue
seems to be system wide. I suppose I could reinstall everything from fresh,
but I would rather avoid doing that.

At the moment I can still use the extra hotkey to do the play/pausing, but love
the MediaPlayer interface when switching players (as I use Amarok very often as
well).

Thanks again for your help!
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 15:24:45 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #3 from Danny Auble <***@schedmd.com> ---
For further reference

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.freedesktop.DBus.Properties.GetAll org.mpris.MediaPlayer2.Player
CanControl: true
CanGoNext: true
CanGoPrevious: true
CanPause: true
CanPlay: true
CanSeek: true
LoopStatus: Playlist
MaximumRate: 1
Metadata: mpris:artUrl:
http://open.spotify.com/thumb/0fd555d08a265b1c364044a4118cf6e1ea700f67
mpris:length: 323000000
mpris:trackid: spotify:track:6Oy2qpuumdnPo44ZpmxSY7
xesam:album: Liberty
xesam:artist: Duran Duran
xesam:autoRating: 0.16
xesam:contentCreated: 1990-01-01T00:00:00
xesam:discNumber: 1
xesam:title: Downtown
xesam:trackNumber: 11
xesam:url: spotify:track:6Oy2qpuumdnPo44ZpmxSY7
MinimumRate: 1
PlaybackStatus: Paused
Position: 0
Rate: 1
Shuffle: false
Volume: 0
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 15:31:45 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #4 from Danny Auble <***@schedmd.com> ---
If I attach dbus-monitor to it I get

dbus-monitor "sender='org.mpris.MediaPlayer2.spotify'"

When I hit play/pause

method return time=1520955006.105602 sender=:1.40 -> destination=:1.19
serial=1108 reply_serial=1360
variant boolean true
method return time=1520955006.105816 sender=:1.40 -> destination=:1.19
serial=1109 reply_serial=1361
variant string "Playing"
method return time=1520955006.106052 sender=:1.40 -> destination=:1.19
serial=1110 reply_serial=1362
variant boolean true
signal time=1520955006.109423 sender=:1.40 -> destination=(null destination)
serial=1111 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewStatus
string "Passive"
signal time=1520955006.109442 sender=:1.40 -> destination=(null destination)
serial=1112 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewStatus
string "Active"
signal time=1520955006.109452 sender=:1.40 -> destination=(null destination)
serial=1113 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewToolTip
method return time=1520955006.111189 sender=:1.40 -> destination=:1.19
serial=1114 reply_serial=1363
signal time=1520955006.111576 sender=:1.40 -> destination=(null destination)
serial=1115 path=/org/mpris/MediaPlayer2;
interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.mpris.MediaPlayer2.Player"
array [
dict entry(
string "PlaybackStatus"
variant string "Paused"
)
]
array [
]
signal time=1520955006.111671 sender=:1.40 -> destination=(null destination)
serial=1116 path=/StatusNotifierItem/menu; interface=com.canonical.dbusmenu;
member=LayoutUpdated
uint32 14
int32 0
method return time=1520955006.111899 sender=:1.40 -> destination=:1.19
serial=1117 reply_serial=1364
variant int64 0
method return time=1520955006.114116 sender=:1.40 -> destination=:1.19
serial=1118 reply_serial=1365
uint32 14
struct {
int32 0
array [
dict entry(
string "children-display"
variant string "submenu"
)
]
array [
variant struct {
int32 1
array [
dict entry(
string "enabled"
variant boolean false
)
dict entry(
string "label"
variant string "Duran Duran â
Ordinary World"
)
]
array [
]
}
variant struct {
int32 2
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 3
array [
dict entry(
string "label"
variant string "Open Spotify"
)
]
array [
]
}
variant struct {
int32 4
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 5
array [
dict entry(
string "label"
variant string "Play"
)
]
array [
]
}
variant struct {
int32 6
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 7
array [
dict entry(
string "label"
variant string "Next"
)
]
array [
]
}
variant struct {
int32 8
array [
dict entry(
string "label"
variant string "Previous"
)
]
array [
]
}
variant struct {
int32 9
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 10
array [
dict entry(
string "label"
variant string "Shuffle"
)
]
array [
]
}
variant struct {
int32 11
array [
dict entry(
string "label"
variant string "Repeat"
)
]
array [
]
}
variant struct {
int32 12
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 13
array [
dict entry(
string "label"
variant string "Exit"
)
]
array [
]
}
]
}
method return time=1520955006.123956 sender=:1.40 -> destination=:1.19
serial=1119 reply_serial=1366
array [
dict entry(
string "AttentionIconName"
variant string ""
)
dict entry(
string "AttentionIconPixmap"
variant array [
]
)
dict entry(
string "AttentionMovieName"
variant string ""
)
dict entry(
string "Category"
variant string "ApplicationStatus"
)
dict entry(
string "IconName"
variant string
"spotify_9412_fd48efb25a68b4b9d05cbe144830d1e9"
)
dict entry(
string "IconPixmap"
variant array [
]
)
dict entry(
string "IconThemePath"
variant string "/tmp/sni-qt_spotify_9412-bDm7Oy/icons"
)
dict entry(
string "Id"
variant string "spotify"
)
dict entry(
string "ItemIsMenu"
variant boolean false
)
dict entry(
string "Menu"
variant object path "/StatusNotifierItem/menu"
)
dict entry(
string "OverlayIconName"
variant string ""
)
dict entry(
string "OverlayIconPixmap"
variant array [
]
)
dict entry(
string "Status"
variant string "Active"
)
dict entry(
string "Title"
variant string "spotify"
)
dict entry(
string "ToolTip"
variant struct {
string "spotify_9412_fd48efb25a68b4b9d05cbe144830d1e9"
array [
]
string "Spotify"
string ""
}
)
dict entry(
string "WindowId"
variant int32 0
)
]


But then when I hit play/pause again

method return time=1520955057.838120 sender=:1.40 -> destination=:1.19
serial=1120 reply_serial=1371
variant boolean true
method return time=1520955057.838249 sender=:1.40 -> destination=:1.19
serial=1121 reply_serial=1372
variant string "Paused"
method return time=1520955057.838392 sender=:1.40 -> destination=:1.19
serial=1122 reply_serial=1373
variant boolean true
method return time=1520955057.838511 sender=:1.40 -> destination=:1.19
serial=1123 reply_serial=1374


If I hit my custom hotkey to play again I get

method return time=1520955079.886141 sender=:1.40 -> destination=:1.129
serial=1124 reply_serial=3
string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object
Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.mpris.MediaPlayer2">
<method name="Raise"/>
<method name="Quit"/>
<property access="read" type="b" name="CanQuit"/>
<property access="read" type="b" name="CanRaise"/>
<property access="read" type="b" name="HasTrackList"/>
<property access="read" type="s" name="Identity"/>
<property access="read" type="s" name="DesktopEntry"/>
<property access="read" type="as" name="SupportedUriSchemes"/>
<property access="read" type="as" name="SupportedMimeTypes"/>
</interface>
<interface name="org.mpris.MediaPlayer2.Player">
<method name="Next"/>
<method name="Previous"/>
<method name="Pause"/>
<method name="PlayPause"/>
<method name="Stop"/>
<method name="Play"/>
<method name="Seek">
<arg direction="in" type="x" name="Offset"/>
</method>
<method name="SetPosition">
<arg direction="in" type="o" name="TrackId"/>
<arg direction="in" type="x" name="Position"/>
</method>
<method name="OpenUri">
<arg direction="in" type="s"/>
</method>
<!-- Signals -->
<signal name="Seeked">
<arg type="x" name="Position"/>
</signal>
<!-- Properties -->
<property access="read" type="s" name="PlaybackStatus"/>
<property access="readwrite" type="s" name="LoopStatus"/>
<property access="readwrite" type="d" name="Rate"/>
<property access="readwrite" type="b" name="Shuffle"/>
<property access="read" type="a{sv}" name="Metadata">
<annotation value="QVariantMap" name="com.trolltech.QtDBus.QtTypeName"/>
</property>
<property access="readwrite" type="d" name="Volume"/>
<property access="read" type="x" name="Position"/>
<property access="read" type="d" name="MinimumRate"/>
<property access="read" type="d" name="MaximumRate"/>
<property access="read" type="b" name="CanGoNext"/>
<property access="read" type="b" name="CanGoPrevious"/>
<property access="read" type="b" name="CanPlay"/>
<property access="read" type="b" name="CanPause"/>
<property access="read" type="b" name="CanSeek"/>
<property access="read" type="b" name="CanControl"/>
</interface>
<interface name="org.freedesktop.DBus.Properties">
<method name="Get">
<arg name="interface_name" type="s" direction="in"/>
<arg name="property_name" type="s" direction="in"/>
<arg name="value" type="v" direction="out"/>
</method>
<method name="Set">
<arg name="interface_name" type="s" direction="in"/>
<arg name="property_name" type="s" direction="in"/>
<arg name="value" type="v" direction="in"/>
</method>
<method name="GetAll">
<arg name="interface_name" type="s" direction="in"/>
<arg name="values" type="a{sv}" direction="out"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0"
value="QVariantMap"/>
</method>
</interface>
<interface name="org.freedesktop.DBus.Introspectable">
<method name="Introspect">
<arg name="xml_data" type="s" direction="out"/>
</method>
</interface>
<interface name="org.freedesktop.DBus.Peer">
<method name="Ping"/>
<method name="GetMachineId">
<arg name="machine_uuid" type="s" direction="out"/>
</method>
</interface>
</node>
"
signal time=1520955079.889369 sender=:1.40 -> destination=(null destination)
serial=1125 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewStatus
string "Passive"
signal time=1520955079.889380 sender=:1.40 -> destination=(null destination)
serial=1126 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewStatus
string "Active"
signal time=1520955079.889390 sender=:1.40 -> destination=(null destination)
serial=1127 path=/StatusNotifierItem; interface=org.kde.StatusNotifierItem;
member=NewToolTip
method return time=1520955079.900514 sender=:1.40 -> destination=:1.129
serial=1128 reply_serial=5
signal time=1520955079.901184 sender=:1.40 -> destination=(null destination)
serial=1129 path=/org/mpris/MediaPlayer2;
interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.mpris.MediaPlayer2.Player"
array [
dict entry(
string "PlaybackStatus"
variant string "Playing"
)
]
array [
]
signal time=1520955079.901633 sender=:1.40 -> destination=(null destination)
serial=1130 path=/StatusNotifierItem/menu; interface=com.canonical.dbusmenu;
member=LayoutUpdated
uint32 13
int32 0
method return time=1520955079.905751 sender=:1.40 -> destination=:1.19
serial=1131 reply_serial=1376
array [
dict entry(
string "AttentionIconName"
variant string ""
)
dict entry(
string "AttentionIconPixmap"
variant array [
]
)
dict entry(
string "AttentionMovieName"
variant string ""
)
dict entry(
string "Category"
variant string "ApplicationStatus"
)
dict entry(
string "IconName"
variant string
"spotify_9412_fd48efb25a68b4b9d05cbe144830d1e9"
)
dict entry(
string "IconPixmap"
variant array [
]
)
dict entry(
string "IconThemePath"
variant string "/tmp/sni-qt_spotify_9412-bDm7Oy/icons"
)
dict entry(
string "Id"
variant string "spotify"
)
dict entry(
string "ItemIsMenu"
variant boolean false
)
dict entry(
string "Menu"
variant object path "/StatusNotifierItem/menu"
)
dict entry(
string "OverlayIconName"
variant string ""
)
dict entry(
string "OverlayIconPixmap"
variant array [
]
)
dict entry(
string "Status"
variant string "Active"
)
dict entry(
string "Title"
variant string "spotify"
)
dict entry(
string "ToolTip"
variant struct {
string "spotify_9412_fd48efb25a68b4b9d05cbe144830d1e9"
array [
]
string "Spotify - Duran Duran – Ordinary World"
string ""
}
)
dict entry(
string "WindowId"
variant int32 0
)
]
method return time=1520955079.905933 sender=:1.40 -> destination=:1.19
serial=1132 reply_serial=1377
variant int64 0
method return time=1520955079.906225 sender=:1.40 -> destination=:1.19
serial=1133 reply_serial=1378
uint32 13
struct {
int32 0
array [
dict entry(
string "children-display"
variant string "submenu"
)
]
array [
variant struct {
int32 1
array [
dict entry(
string "enabled"
variant boolean false
)
dict entry(
string "label"
variant string "Duran Duran –
Ordinary World"
)
]
array [
]
}
variant struct {
int32 2
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 3
array [
dict entry(
string "label"
variant string "Open Spotify"
)
]
array [
]
}
variant struct {
int32 4
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 5
array [
dict entry(
string "label"
variant string "Pause"
)
]
array [
]
}
variant struct {
int32 6
array [
dict entry(
string "label"
variant string "Next"
)
]
array [
]
}
variant struct {
int32 7
array [
dict entry(
string "label"
variant string "Previous"
)
]
array [
]
}
variant struct {
int32 8
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 9
array [
dict entry(
string "label"
variant string "Shuffle"
)
]
array [
]
}
variant struct {
int32 10
array [
dict entry(
string "label"
variant string "Repeat"
)
]
array [
]
}
variant struct {
int32 11
array [
dict entry(
string "type"
variant string "separator"
)
]
array [
]
}
variant struct {
int32 12
array [
dict entry(
string "label"
variant string "Exit"
)
]
array [
]
}
]
}

Hopefully this is helpful
--
You are receiving this mail because:
You are watching all bug changes.
Friedrich W. H. Kossebau
2018-03-13 15:37:25 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #5 from Friedrich W. H. Kossebau <***@kde.org> ---
Thanks for the info. Okay, that make things more transparent: in a change for
Plasma 5.12.3, in the desire to properly support the CanPause flag, the media
key handling code was changed from using the "PlayPause" method to use instead
explicitly the "Play" & "Pause" methods and take the current PlaybackStatus
into account.

See the respective current code in Plasma here:
https://cgit.kde.org/plasma-workspace.git/tree/dataengines/mpris2/multiplexedservice.cpp?h=Plasma%2F5.12#n78

So there is either the chance that spotify does not properly update the
PlaybackStatus or does not react to the call of "Play" method.

Can you check that method and property as well?
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 15:45:07 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #6 from Danny Auble <***@schedmd.com> ---
I am glad it makes sense at least :).

How would I check this method and property?

Thanks again for you help!
--
You are receiving this mail because:
You are watching all bug changes.
Friedrich W. H. Kossebau
2018-03-13 16:01:49 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #7 from Friedrich W. H. Kossebau <***@kde.org> ---
Calling the "Play" method would be done like this:

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.mpris.MediaPlayer2.Player.Play

Spec for Play behaviour is at
https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html#Method:Play

For all the methods you would just use "org.mpris.MediaPlayer2.Player." +
method name in the above call. So what you do here is:
qdbus service object-in-service method-of-object (args, none here)

Getting the "PlaybackStatus" property:

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 \
org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player \
PlaybackStatus
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 16:05:06 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #8 from Danny Auble <***@schedmd.com> ---
Thanks for the tutorial :).

That appears to be the issue.

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.mpris.MediaPlayer2.Player.Play

results in nothing.

qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.mpris.MediaPlayer2.Player.Pause

works just fine.

Any idea how to fix it (or go back to the old method)? Seems strange it works
on other systems.
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 16:05:52 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #9 from Danny Auble <***@schedmd.com> ---
qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
org.mpris.MediaPlayer2.Player.PlayPause

Also works just fine as well (expected).
--
You are receiving this mail because:
You are watching all bug changes.
Friedrich W. H. Kossebau
2018-03-13 16:24:14 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

Friedrich W. H. Kossebau <***@kde.org> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |UPSTREAM

--- Comment #10 from Friedrich W. H. Kossebau <***@kde.org> ---
Seems we found the cause, good.

So this then is a bug in spofify (or whatever adapter there is for it to
support MPRIS). They need to properly handle the "Play" method, if they want to
rightfully claim to support MPRIS. The purpose of specs such as MPRIS is to
have a generic contract which every party complies to, so things work across
systems out-of-the-box.
I hope you agree that adapting implementations (like here Plasma) to deal with
some parties misbehaving ruins the idea of the spec.

So please report this bug about not handling the "Play" method to where you got
spotify from. You did not mention your operating system, so I cannot give any
hint myself who you might need to contact, hope you do know or can find out.

While most other MPRIS controllers might also default to use the "PlayPause"
method (so this bug is not uncovered), there is a chance other MPRIS
controllers also try just the "Play" method and will fail as well. So best for
all in the long-term is to have spotify behave correctly.
--
You are receiving this mail because:
You are watching all bug changes.
Danny Auble
2018-03-13 17:41:08 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #11 from Danny Auble <***@schedmd.com> ---
I agree, thanks for your help on this. I have already verified they have this
fixed in a newer release of spotify. The spotify version with the problem is
0.9.17.8. 1.0.69 is working as expected.

I also verified the 'good' system I though it worked with was actually still
running KDE 5.10.5 so it also makes sense why it was working.

Thanks for your help and great information on how to debug.
--
You are receiving this mail because:
You are watching all bug changes.
Friedrich W. H. Kossebau
2018-03-13 17:55:39 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=391545

--- Comment #12 from Friedrich W. H. Kossebau <***@kde.org> ---
spotify 1.0.69 working as expected is good news.
Thanks for that update, and thanks also again for your active support in
sorting out things :)
--
You are receiving this mail because:
You are watching all bug changes.
Loading...