Plexamp - Headphone/SWC buttons problem

Hello there.

On Samsung Galaxy S10 (Android 11) Plexamp doesn’t respond to “next” and “previous” headphone buttons.
On my SCS (Android 8), where steering wheel buttons are managed exactly as headphone buttons, Plexamp doesn’t respond to any buttons.

Any suggestions?

Regards

make sure you’re on 3.4.2. if it still doesn’t work, send Plexamp debug logs.

Dear @elan ,
here’s the logs.

Regards

S10_201992088742215.zip (138.2 KB)
SCS_2206807516896.zip (72.9 KB)

Interesting :thinking: For the S10 I see the “play/pause” button being sent, but no others. For the SCS I don’t see any button events.

Any chance you can pass along the Plex app logs after pushing the buttons? It might contain clues about how they’re doing things differently.

Thanks!

Dear Elan,
the logs I already sent should already contain the commands.
On S10 a single button controls play/pause and next/prev, next is 2 short presses, prev 3 short presses; well Plex and other apps seem to react correctly, while on 2 short presses Plexamp does pause and play.
Ok SCS, the commands from steering wheel come via CAN bus, then ther’s a service that takes CAN bus and emulates headphones, and this is how it works with Plex and other apps.

By the way, let me try again and send more logs, those might help.

Regards

Dear @elan ,
here’s new logs with related commands sequences:
SCS_play_next_prev_387096310252.zip (93.9 KB) - Nothing received
S10_Zorloo_Ztella_play_next_46040240501953.zip (134.2 KB) - Next is received as 2 x play/pause
S10_builtin_DAC_jack_play_next_prev_46040240501953.zip (106.0 KB) - All commands received correctly

I also tested Plex and, in contrast with how I said in my 1st post, on S10 problem is confirmed also on Plex.
On SCS, with Plex, play and pouse work, while next is received as 2 x play/pause.
SCS_Plex_play_next.zip (250.5 KB)

I tested some other Players like Spotify and Neutron, both work correctly with buttons.

Regards

this was the key part which was confusing me :laughing:

i’m honestly not sure what mechanism is used for understanding these controls.

  1. do you know of any open source player which handles the commands?
  2. are you willing to try some custom APK builds to try to figure it out?

Dear @elan ,
sorry for late reply.

VLC works fine with buttons.
And yes, of course, I’m available to test apks.

Regards

here you go ~ https://files.plexapp.com/elan/Plexamp-keys.apk

mash on some keys, remember which ones you mashed on, and let me know along with app logs :slight_smile:

Dear,
it fails to start playback, I had to tap play on screen.
Then, pause/play works.
You’ll see then some “next” attempts by double click, but the app does pause then play.
196751186267657.zip (255.1 KB)

Regards

I might be confused, you double click the button to go next? I see the taps, but I think that must mean whatever apps you use must manually detect a double-click?

In any event, I do not see any extra keypress events from the added logging. Not sure what device this was specifically.

Dear,
I use double press on headphones button to send a “next”.
It works with other apps on my S10, but Plexamp does pause then play an instead of next.
Regards

i don’t understand if these apps do special handling for “double press”. i would have expected your headphones or android to do the translation.

Dear @elan ,
the gap might be something related to timing.

With jack the double and triple presses can be comfortable and always works:
Pioneer_jack_pause_next_prev_30772127282951.zip (22.3 KB)

With Sharkoon type-c dac double and triple presses work only if extremely fast, weird to use:
pioneer_sharkoon_pause_next_prev_31901338607297.zip (155.5 KB)

With Ztella type-c dac double and triple presses don’t work:
pioneer_ztella_pause_next_prev_31173461803472.zip (41.4 KB)

Instead, with Plex, double and triple presses work only with jack.

I dunno how double and triple presses should be managed and why other apps work, can’t you just make Plex and Plexamp skip to next when a double tap is received and back to previous when a triple tap comes?

Moreover, just for your information, in the meanwhile I took the phone to service to have the firmware reinstalled from scratch to try to fix the problem I described at Plexamp downgrading to 48kHz .
Well, it didn’t fix.
While Plex usually works at 96kHz, Plexamp often plays 96kHz tracks at 48kHz, and this isn’t caused by the phone as Plexamp is the only affected app.

Regards

Almost certainly because Android converts those into the right commands.

Technically yes, but we might be missing something here. It seems crazy that an application would have to handle it.

For example, with my Apple AirPods, I can double tap to skip :next_track_button: and triple tap to go back :previous_track_button: but the application only sees the actual media commands.

This is a known thing, we don’t do source matching yet.

Yes, there’s something strange…
In the meanwhile, I got a Galaxy S20 and, unfortunately, the problem is confirmed.
If you need, I can let you remotely work on my S10, I’m no more using it

Sorry, what do you mean?
At the moment it sometimes plays at 48k, sometimes at 96k, apparently randomly.
I noticed this happens only with OpenSL.
Changing to AAudio sample rate is always correct, any 96k files is played at 96k; unfortunately, with this interface sound level is too weak, maybe DSP is bypassed in this mode, no idea.

Plexamp always requests 48kHz, I’m not sure why it would sometimes play at 96.

Well, this phones are configured to upscale everything, so the question is why Plexamp is the only player that the most of times is not upscaled using OpenSL and why Aaudio is so weak.
But, overall, to not to support 96khz is quite limiting for a premium player dedicated to audiophiles…
Is this the same with Plex? I mean, does Plex always set 48k as Plexamp does or can it follow media sampling rate?

Regards

Upscaling to 96kHz is not something which improves the sound.

It uses the same player under the hood.

Sure, in fact I would use Plexamp just to play 96/24 media and gapless media, the only features missing on Plex, but if Plexamp has the same limitations what is it deployed for?